但行好事
莫论前程❤

Linux学习命令 —- 文件的压缩与解压(tar,zip)

tar命令

tar命令可以为linux的文件和目录创建档案。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。

命令格式:

tar [必要参数][选择参数][文件] 

命令功能:

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

命令参数:

必要参数有如下:
    -z 支持gzip解压文件
    -c 建立新的压缩文件
    -x 从压缩的文件中提取文件
    -v 显示操作过程

    -r 添加文件到已经压缩的文件
    -u 添加改变了和现有的文件到已经存在的压缩文件

可选参数如下:
    -f 指定压缩文件
    -C 切换到指定目录
    -H, --format=FORMAT        创建指定格式的归档

选择归档格式:

  • 查看默认归档格式:tar --show-defaults
  • 常见报错问题
    解压后文件大小为0,windows系统上解压,多出来一个PaxHeaders.51242文件夹
原因:归档格式不对应
#   -H, --format=FORMAT        创建指定格式的归档
# 执行tar命令时,指定归档格式
tar --format=gnu  -cf xxx.tar.gz  xxx/

# FORMAT 是以下格式中的一种:

    gnu                      GNU tar 1.13.x 格式
    oldgnu                   GNU 格式 as per tar <= 1.12
    pax                      POSIX 1003.1-2001 (pax) 格式
    posix                    等同于 pax
    ustar                    POSIX 1003.1-1988 (ustar) 格式
    v7                       old V7 tar 格式

  --old-archive, --portability
                             等同于 --format=v7
  --pax-option=关键字[[:]=值][,关键字[[:]=值]]...
                             控制 pax 关键字
  --posix                等同于 --format=posix
  -V, --label=TEXT           创建带有卷名 TEXT
                             的归档;在列出/解压时,使用 TEXT
                             作为卷名的模式串

常见解压/压缩命令

# tar 查看默认值
tar --show-defaults 
# 将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar.并调用gzip进行解压
tar -zcvf   /tmp/etc.tar.gz  /etc            # 打包后,以 gzip 压缩

# 将 /tmp/etc.tar.gz  文件解压缩在 /usr/local/src 底下
tar -zxvf /tmp/etc.tar.gz  -C /usr/local/src

zip/unzip命令

  • Linux zip命令用于压缩文件。
  • Linux unzip命令用于解压缩zip文件. unzip为.zip压缩文件的解压缩程序。

zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有”.zip”扩展名的压缩文件。

命令格式

zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

命令参数:

zip命令
    -b<工作目录> 指定暂时存放文件的目录。
    -r 递归处理,将指定目录下的所有文件和子目录一并处理。
    -F 尝试修复已损坏的压缩文件。
    -q 不显示指令执行过程。

unzip命令
    -v 执行是时显示详细的信息。
    -P<密码> 使用zip的密码选项。
    -q 执行时不显示任何信息。
    -X 解压缩时同时回存文件原来的UID/GID。
    -d<目录> 指定文件解压缩后所要存储的目录。

常见解压/压缩命令

# 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/html
# 如果在我们在 /home/html 目录下,可以执行以下命令:
zip -q -r html.zip *


# 解压当前文件到指定文件夹
unzip html.zip  -d /etc/html/
赞(1) 打赏
未经允许不得转载:刘鹏博客 » Linux学习命令 —- 文件的压缩与解压(tar,zip)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏