Linux解压缩常用命令记录tar、zip、unzip

Linux下解压缩分好几种方法和软件,可我只喜欢取其中两瓢饮。编不下去了,记录如下:

[mark_c]最常用命令举例:[/mark_c]

#将/var/www目录打包并压缩到当前目录的xxx.tar.gz

  1. tar -czvf xxx.tar.gz  /var/www

#将/var/www目录打包并压缩到/var/www的xxx.tar.gz

#注意,不建议这种方式,这种方式压缩包内会保留路径,建议cd到要压缩文件夹的上一级目录压缩,压缩文件在当前目录进行。

  1. tar -czvf /var/www/xxx.tar.gz  /var/www

#将当前目录下的xxx.tar.gz解压到/var/www目录中

  1. tar -xzvf xxx.tar.gz /var/www

#将当前目录下的xxx.zip解压到/var/www目录中

  1. unzip -o xxx.zip /var/www

#将当前目录下的xxx.zip解压到当前目录中

  1. unzip -o xxx.zip

#将当前目录下的abc12.zip、abc23.zip、abc34.zip同时解压到当前目录

  1. unzip abc\*.zip

#将当前目录下的mydata文件夹压缩成mydata.zip

  1. zip -r mydata.zip mydata

#将当前目录下的abc文件夹和123.txt压缩成为abc123.zip

  1. zip -r abc123.zip abc 123.txt

#查看当前目录下wwwroot.zip中的内容

  1. unzip -v wwwroot.zip

 

[mark_a]一、tar命令:[/mark_a]

解析:组成部分是tar+参数+(目录)名称+打包压缩的文件(夹)的路径,举例如下: 

常见必须参数如下:

  1. -A 新增压缩文件到已存在的压缩
  2. -c 建立新的压缩文件
  3. -d 记录文件的差别
  4. -r 添加文件到已经压缩的文件
  5. -u 添加改变了和现有的文件到已经存在的压缩文件
  6. -x 从压缩的文件中提取文件
  7. -t 显示压缩文件的内容
  8. -z 支持gzip解压文件
  9. -j 支持bzip2解压文件
  10. -Z 支持compress解压文件
  11. -v 显示操作过程
  12. -l 文件系统边界设置
  13. -k 保留原有文件不覆盖
  14. -m 保留文件不被覆盖
  15. -W 确认压缩文件的正确性

常用命令展示之压缩:

  1. tar cf hhh.tar hhh         # 仅仅打包
  2. tar jcf hhh.tar.bz2 hhh    # 压缩打包
  3. tar czf hhh.tar.gz hhh     # 压缩打包
  4. zip hhh.zip.gz hhh         # 压缩打包
  5. gzip messages              # 仅压缩文件【默认删除源文件】

常用命令展示之查看压缩包内容

  1. tar ztvf hhh.tar.gz
  2. tar jtvf hhh.tar.bz2
  3. tar tvf hhh.tar

常用命令展示之压缩包解压

  1. tar xf hhh.tar hhh
  2. tar jxf hhh.tar.bz2 hhh
  3. tar xzf hhh.tar.gz hhh
  4. unzip hhh.zip hhh

其他常用命令举例:

#只将 /tar 内的部分文件解压出来

  1. tar xzf ftl.tar.gz  ftl/hhh.tar

#文件备份下来,并且保存其权限

  1. tar vzvfp ftl.tar.gz ftl.log hhh.log run.log 【-p参数保存属性】
  2. tar xzvfp ftl.tar.gz 【-p参数保存属性】

#在文件夹当中,比某个日期新的文件才备份

  1. tar -N “2018/10/20” -czf hhh.tgz /tmp 【-N newer】

#备份文件夹内容是排除部分文件

  1. tar –exclude scf/service -zcvf scf.tar.gz scf/* 【–exclude】

#添加文件到已经压缩的文件

  1. tar -cvfr ftl.tar.gz hhh.tgz 【-r 添加文件到已压缩文件】

 

[mark_b]二、zip和unzip命令[/mark_b]

zip命令

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

选项:

-A 调整可执行的自动解压缩文件。

-b<工作目录> 指定暂时存放文件的目录。

-c 替每个被压缩的文件加上注释。

-d 从压缩文件内删除指定的文件。

-D 压缩文件内不建立目录名称。

-f 此参数的效果和指定”-u”参 数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。

-F 尝试修复已损坏的压缩文件。

-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。

-h 在线帮助。

-i<范本样式> 只压缩符合条件的文件。

-j 只保存文件名称及其内容,而不存放任何目录名称。

-J 删除压缩文件前面不必要的数据。

-k 使用MS-DOS兼容格式的文件名称。

-l 压缩文件时,把LF字符置换成LF+CR字 符。

-ll 压缩文件时,把LF+CR字符置换成LF字符。

-L 显示版权信息。

-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

-n<字尾字符串> 不压缩具有特定字尾字符串的文件。

-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。

-q 不显示指令执行过程。

-r 递归处理,将指定目录下的所有文件和子目录一并处理。

-S 包含系统和隐藏文件。

-t<日期时间> 把压缩文件的日期设成指定的日期。

-T 检查备份文件内的每个文件是否正确无误。

-u 更换较新的文件到压缩文件内。

-v 显示指令执行过程或显示版本信息。

-V 保存VMS操作系统的文件属性。

-w 在文件名称里假如版本编号,本参数仅在VMS操 作系统下有效。

-x<范本样式> 压缩时排除符合条件的文件。

-X 不保存额外的文件属性。

-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。

-z 替压缩文件加上注释。

-$ 保存第一个被压缩文件所在磁盘的卷册名称。

-<压缩效率> 压缩效率是一个介于1-9的 数值。

例子:

1. 压缩ltmain.sh文件

[root@monitor rrdtool-1.3.4]# zip test1.zip ltmain.sh

adding: ltmain.sh (deflated 75%)

[root@monitor rrdtool-1.3.4]# ll ltmain.sh test1.zip

-rw-r–r– 1 1003 1001 199991 Feb 8 2008 ltmain.sh

-rw-r–r– 1 root root 49771 Dec 21 13:52 test1.zip

2. 压缩效率分别为3和9

[root@monitor rrdtool-1.3.4]#zip test2.zip -3 ltmain.sh

[root@monitor rrdtool-1.3.4]#zip test2.zip -9 ltmain.sh

[root@monitor rrdtool-1.3.4]# ll ltmain.sh test*.zip

-rw-r–r– 1 1003 1001 199991 Feb 8 2008 ltmain.sh

-rw-r–r– 1 root root 49771 Dec 21 13:52 test1.zip

-rw-r–r– 1 root root 56782 Dec 21 14:07 test2.zip

-rw-r–r– 1 root root 49443 Dec 21 14:07 test3.zip

注:

压缩率(Compression ratio),描述压缩文件的效果名,是文件压缩后的大小与压缩前的大小之比,

例如:把100m的文件压缩后是90m,压缩率为90/100*100%=90%,压缩率一般是越小越好,但是压得越小,解压时间越长。压缩效率(compression efficiency)越大压缩后的文件越小,解压时间越长。

3. 将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件

[root@monitor rrdtool-1.3.4]# zip -r test.zip ./*

4. 打包目录

[root@monitor rrdtool-1.3.4]# zip test2.zip doc/*

5. 删除压缩文件test.zip中的Makefile.am文件

[root@monitor rrdtool-1.3.4]# zip -d test.zip Makefile.am

deleting: Makefile.am

6. 向压缩文件test.zip中添加rrdtool.spec文件

[root@monitor rrdtool-1.3.4]# zip -m test.zip rrdtool.spec

updating: rrdtool.spec (deflated 68%)

7. 压缩文件时排除某个文件

[root@monitor tar]# zip test3.zip rrdtool-1.3.4 -x ltmain.sh

 

unzip命令

unzip为.zip压缩文件的解压缩程序

选项:

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f 更新现有的文件。

-l 显示压缩文件内所包含的文件。

-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t 检查压缩文件是否正确,但不解压。

-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

-v 执行是时显示详细的信息。或查看压缩文件目录,但不解压。

-z 仅显示压缩文件的备注文字。

-a 对文本文件进行必要的字符转换。

-b 不要对文本文件进行字符转换。

-C 压缩文件中的文件名称区分大小写。

-j 不处理压缩文件中原有的目录路径。

-L 将压缩文件中的全部文件名改为小写。

-M 将输出结果送到more程 序处理。

-n 解压缩时不要覆盖原有的文件。

-o 不必先询问用户,unzip执行后覆盖原有文件。

-P<密码> 使用zip的密码选项。

-q 执行时不显示任何信息。

-s 将文件名中的空白字符转换为底线字符。

-V 保留VMS的文件版本信息。

-X 解压缩时同时回存文件原来的UID/GID。

[.zip文件] 指定.zip压缩文件。

[文件] 指定要处理.zip压缩文件中的哪些文件。

-d<目录> 指定文件解压缩后所要存储的目录。

-x<文件> 指定不要处理.zip压缩文件中的哪些文件。

-Z unzip -Z等于执行zipinfo指令。

例子:

1. 将压缩文件text.zip在当前目录下解压缩。

[root@mysql test]# unzip test.zip

2. 将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

[root@mysql test]# unzip -n test.zip -d /tmp

3. 查看压缩文件目录,但不解压。

[root@mysql test]# unzip -v test.zip

4. 将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。

[root@mysql test]# unzip -o test.zip -d tmp/

5.解压当前目录下的所有zip文件

[root@mysql test]# unzip “*.zip”

[root@mysql test]# ls *.zip | xargs -n1 unzip

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论