linux下的压缩命令 tar zip gunzip

1.tar命令

基础参数:

  • -c 创建tar包
  • -x 解压
  • -t 查看压缩包中的内容(查看文件内容时对于使用某种压缩方式压缩过的包要加上对应的参数,例如:使用 gzip 压缩得到包etc.tar.gz,查看内容时需要加上z 这个参数)
  • -r 向压缩包中添加文件
  • -u 修改原来压缩包中的文件

这五个命令是tar命令的五种类型,使用tar时必须使用其中一个。

特殊参数:

  • -f 指定tar包,这个参数后只能接tar包名
  • -C dir参数的作用在于改变工作目录
    • -C 指定需要解压到的目录。e.g: tar -xvf rdb-release-20170706.tar -C /Users/test/Downloads/
    • -C 指定需要打包的目录。 e.g: tar -czvf rdb-release-20170706.tar -C /Users/test/   Downloads/,该命令中源目录使用相对路径Downloads/,压缩路径为Downloads;tar -czvf rdb-release-20170706.tar -C /Users/test/Downloads/   ./ ,该命令中源目录使用相对路径./,压缩路径为./。
    • 不使用-C指定打包的目录。tar -czvf rdb-release-20170706.tar /Users/test/Downloads/,该命令中源目录使用绝对路径/Users/test/Downloads/,压缩时目录连同绝对路径(这里是Users/test/Downloads/,根目录'/'被自动去掉了)一并被压缩进来

使用-C指定目录时,若目录不存在会报错。

其他参数:

  • -z:是否同时具有 gzip 的属性, 一般格式为xx.tar.gz或xx. tgz
  • -v:显示所有过程
  • -j:是否同时具有 bzip2 的属性,一般格式为xx.tar.bz2 
  • -Z:有compress属性的
  • -O:将文件解开到标准输出
  • -p :使用原文件的原来属性(属性不会依据使用者而变)
  • --exclude FILE:在压缩的过程中,不要将 FILE 打包! 

举栗:

  • tar -cf all.tar *.jpg  #这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
  • tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
  • tar -uf all.tar logo.gif #这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
  • tar -tf all.tar  #这条命令是列出all.tar包中所有文件,-t是列出文件的意思
  • tar -ztvf all.tar.gz  #如果使用 gzip 压缩,查阅tar包中的文件时,就得要加上参数z!这很重要的!
  • tar -xf all.tar  #这条命令是解出all.tar包中所有文件,-x是解开的意思

各种压缩举栗:

  • tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar 
  • tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
  • tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
  • tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
  • rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
  • zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
  • tar --exclude /home/dmtsai -zcvf file.tar.gz /home/* /etc   #备份 /home, /etc 目录,但不要 /home/dmtsai

各种解压举栗:

  • tar -xvf file.tar //解压 tar包
  • tar -xzvf file.tar.gz //解压tar.gz
  • tar -xjvf file.tar.bz2   //解压 tar.bz2
  • tar -xZvf file.tar.Z   //解压tar.Z
  • unrar e file.rar //解压rar
  • unzip file.zip //解压zip

解压单个文件,比如:解压file.tar.gz文件,可以先通过tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件就可以通过 tar -zxvf file.tar.gz  etc/passwd.注意到file.tar.gz 内的根目录 / 是被拿掉了

2.zip命令

压缩   

-b 指定存放文件的目录;
-d 删除压缩文件内指定的文件(或者当压缩是目录时,指定目录下的文件);
-f 更新压缩包的文件;
-m 将文件压缩并加入压缩文件后,删除原始文件;
-q 不显示执行过程;
-r 递归处理,将指定目录下的所有文件和子目录一并处理;
-v 显示指令执行过程或显示版本信息(默认选项);
-sf 显示文件;

  • 压缩文件  zip jpg.zip *.jpg  
  • 压缩目录  zip -r jpg.zip aaa/   --不加r,只压缩文件夹
  • zip -m test5.zip test5.txt   --加-m 加入压缩文件后,删除原始文件test5.txt ;

解压

  • unzip test.zip
  • 解压到指定目录:unzip -d /temp test.zip
  • 查看压缩包的内容:unzip -l test.zip
  • 查看压缩包中的文件列表并显示压缩率:unzip -v test.zip
  • 查看压缩包是否损坏:unzip -t test.zip
  • 覆盖原来的文件 -o:unzip -o test.zip -d /tmp/
  • 不覆盖原来的文件 -n:unzip -n -d /temp test.zip

 

 3.gzip与gunzip命令

用于压缩或解压.gz文件

压缩文件gzip 源文件

例如:如压缩 b.txt,使用命令gzip b.txt 即可。压缩为 .gz 文件 源文件会消失。

如果想保留源文件 使用命令gzip -c 源文件 >压缩文件

压缩目录:gzip -r 目录

注意 gzip 压缩目录 只会压缩目录下的所有文件,不会将目录压缩为一个.gz文件

解压文件gzip -d 压缩文件 或者 gunzip 压缩文件

gunzip -f  覆盖原有文件

总结

  • *.tar 用 tar -xvf 解压
  • *.gz 用 gzip -d或者gunzip 解压
  • *.tar.gz和*.tgz 用 tar -xzf 解压
  • *.bz2 用 bzip2 -d或者用bunzip2 解压
  • *.tar.bz2用tar -xjf 解压
  • *.Z 用 uncompress 解压
  • *.tar.Z 用tar -xZf 解压
  • *.rar 用 unrar e解压
  • *.zip 用 unzip 解压
查看搜索压缩文件的内容
搜索文件内容   zgrep  'string0' filename
查看文件内容   zcat filename

参考文献:https://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.html

posted @ 2019-12-19 17:45  声声慢43  阅读(1057)  评论(0编辑  收藏  举报