记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

Linux 打包压缩 tar、gzip、bzip2、xz、zip、unzip 使用说明

Linux 打包压缩 tar、gzip、bzip2、xz、zip、unzip 使用说明

gzip
gzip 是为了取代 compress 并提供更好的压缩比,zcat/zmore/zless 用来查看压缩文件
XML/HTML代码
  1. -c :将压缩的数据输出到屏幕上,可通过数据流重导向来处理;
  2. -d :解压缩的参数;
  3. -t :可以用来检验一个压缩文件的一致性~看看文件有无错误;
  4. -v :可以显示出原文件/压缩文件的压缩比等信息;
  5. -# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6
使用示例:
XML/HTML代码
  1. gzip glibc                         #不保留老文件
  2. gzip glibc -c > glibc.gz           #保留老文件
  3. gzip -d glibc.gz                   #解压缩不保留包文件
  4. gzip -dc glibc.gz > /root/glibc    #保留老文件并指定目录
  5. cat file1 file2 | gzip > foo.gz    #压缩多个文件
  6. gzip -cd old.gz | gzip > new.gz    #重新压缩
bzip2
bzip2 比 gzip 提供更好的压缩比,bzcat/bzmore/bzless/bzgrep 用来查看压缩文件
XML/HTML代码
  1. -c :将压缩的过程产生的数据输出到屏幕上!
  2. -d :解压缩的参数
  3. -k :保留原始文件,而不会删除原始的文件喔!
  4. -z :压缩的参数(默认值,可以不加)
  5. -v :可以显示出原文件/压缩文件的压缩比等信息;
  6. -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
使用示例:
XML/HTML代码
  1. bzip2 glibc
  2. bzip2 -k glibc        #保留原来
  3. bzip2 -dc glibc.bz2 > /root/glibc    #解压缩保留原来并重定向到文件
xz
虽然 bzip2 已经具有很棒的压缩比,不过显然某些自由软件开发者还不满足,因此后来还推出了 xz 这个压缩比更高的软件,但是这个压缩命令压缩速度偏慢,如果不是对压缩率有特别需求,使用 bzip2 就够了!这个软件的用法也跟 gzip/bzip2 几乎一模一样。
XML/HTML代码
  1. -d :解压缩!
  2. -t :测试压缩文件的完整性,看有没有错误
  3. -l :列出压缩文件的相关信息
  4. -k :保留原本的文件不删除~
  5. -c :同样的,就是将数据由屏幕上输出的意思!
  6. -# :同样的,也有较佳的压缩比的意思!
使用示例:
XML/HTML代码
  1. xz  glibc
  2. xz  -k  glib    c#保留原来
  3. xz  -dc  glibc.bz2  >  /root/glibc    #解压缩保留原来并重定向到文件
tar
配合上述压缩可以对文件目录进行打包并压缩
常用命令选项:
XML/HTML代码
  1. -c        #打包
  2. -x        #解包解压缩
  3. -t        #查看
  4. -v        #显示详细信息
  5. --exclude        #排除
  6. -C        #指定目录
  7. -T        #从文件里获取需要打包的文件路径集合
3 种压缩格式,压缩率从低到高:
#一般选用 bzib2 足已,xz 压缩率高但是压缩速度偏慢
XML/HTML代码
  1. -z    gzip
  2. -j    bzib2
  3. -J    xz
使用示例:
XML/HTML代码
  1. tar -cvf glibc.tar *      #打包当前目录 (注意不会打包隐藏文件如.ssh)
#将当前目录所有打包为 glibc.tar(过滤掉 dir 目录,扩展名为 png,jpg 的文件)
XML/HTML代码
  1. tar -cvf glibc.tar * --exclude dir --exclude '*.png' --exclude '*.jpg'
使用示例:
 
XML/HTML代码
  1. tar -cvzf glibc.tar.gz glibc a.txt                   #打包并以 gzip 压缩 glibc,a.txt
  2. tar -cvjf glibc.tar.bz2  glibc a.txt                 #打包并以 bzib2 压缩 glibc,a.txt
  3. tar -cvJf glibc.tar.xz  glibc b.txt                  #打包并以 xz 压缩 glibc,a.txt
#解包--解压缩到/root 目录
XML/HTML代码
  1. tar  -zxvf  glibc.tar.gz  -C  /root                #gzip
  2. tar  -jxvf  glibc.tar.bz2  -C  /root               #bzib2
  3. tar  -Jxvf  glibc.tar.xz  -C  /root                #xz
  4. tar  -xvf glibc.tar.xx -C /root                    #自动判断
#查看包内容
XML/HTML代码
  1. tar  -tvf glibc.tar.bz2
#只查看第一层文件目录
XML/HTML代码
  1. tar  --exclude="*/*"  -tvf glibc.tar.bz2
#只打包隐藏文件 (文件名第一个是. 第二个是非.)
XML/HTML代码
  1. tar -cvf /tmp/aaa.tar .[!.]*
#打包全部(包含隐藏文件)ls -A 不会列出. .. 两个目录
XML/HTML代码
  1. tar -cvf /tmp/bbb.tar `ls -A`
#配合 find 有时候更容易,比如只打包.c .h 文件:
XML/HTML代码
  1. find ./ -name "*.c" -o -name "*.h" | xargs tar -cvjf /tmp/xxx.tar.bz2
#内容太大还是不行 (打包出来不准确或者报 argument line too long),可以分两步,先存文件,然后打包文件里指定的路径
XML/HTML代码
  1. find ./ -name "*.c" -o -name "*.h" > out.txt
  2. tar -cvjf /tmp/xxx.tar.bz2 -T out.txt
zip
zip 命令为打包压缩命令,一般为了跟 windows 交互才会用的,不涉及 windows 推荐使用 tar 配合 gzip, bzip2, xz
#常用命令选项:
XML/HTML代码
  1. -d       从压缩文件内删除指定的文件。
  2. -m       把文件移到压缩文件中。
  3. -0-9     压缩比
  4. -r       递归处理,所有文件和子目录一并处理。
  5. -x<范本样式>       压缩时排除符合条件的文件。
  6. -c       交互为每一个文件设置注释
  7. -z       交互多行注释, 英文句话. 来表示结束
  8. -e       交互设置密码
  9. -P       直接设置密码
使用示例:
XML/HTML代码
  1. zip test.zip test.txt       #添加压缩文件
  2. zip test.zip test1.txt      #移动文件到压缩包
  3. zip -d test.zip test.txt    #删除 test.txt
  4.  
  5. zip -r test.zip ./*         #压缩当前全部文件到 test.zip
  6. zip test2.zip test2/*       #打包目录
  7. zip test3.zip tests/* -x tests/ln.log      #压缩目录, 除了 tests/ln.log
  8.  
  9. zip -r test.zip ./* -P 123      #设置密码 (明文设置密码不太安全)
  10. zip -r test.zip ./* -e           #交互设置密码 (安全)
#设置压缩比 -0 不压缩,-9 最高压缩,默认为-6
XML/HTML代码
  1. zip test.zip test.txt -6
unzip
XML/HTML代码
  1. -d     指定目录
  2. -n     解压时不覆盖
  3. -o     不询问直接覆盖
  4. -l     显示压缩文件内所包含的文件。
  5. -v     显示压缩文件内所包含的文件。
  6. -x     指定不要处理哪些文件。
  7. -P     解压缩密码
#解压到当前目录并直接覆盖:
XML/HTML代码
  1. unzip -o test1.zip
#指定解压目录:
XML/HTML代码
  1. unzip test1.zip -d /tmp/
#解压特定文件:
XML/HTML代码
  1. unzip test1.zip inc abc
#查看 zip 包里所有文件:
XML/HTML代码
  1. unzip -l test.zip
#只查看 zip 包里第 1 级文件或目录:
XML/HTML代码
  1. unzip -l test.zip -x '*/*/*' 
具体命令自己灵活使用,以上仅供参考。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):