[关闭]
@Chiang 2019-09-08T10:42:55.000000Z 字数 1619 阅读 637

压缩与打包

Linux


Linux 下面,扩展名没有什么特殊的意义.为了方便记忆会有一些特殊的命名方式.

常见压缩文件扩展名

*.z compress 程序压缩的文件
*.zip zip 程序压缩的文件
*.gz gzip 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.xz xz 程序压缩的文件
*.tar tar 程序打包的文件,并没有压缩过
*.tar.gz tar 程序打包的文件,并且经过gzip的压缩
*.tar.bz2 tar 程序打包的文件,并且经过bzip2的压缩
*.tar.xz tar 程序打包的文件,并且经过xz的压缩

压缩

依次向下压缩效率越高,相应的耗费时间更长

gzip, zcat/zmore/zless/zgrep

  1. gzip [-cdtv#] 文件名
  2. zcat 文件名.gz
  3. gzip -v services 压缩
  4. zcat services.gz
  5. gzip -d services.gz 解压缩
  6. gzip -9 -c services > services.gz 输出屏幕数据流重定向 压缩比默认 -6
  7. zgrep -n 'http' services.gz

gunzip解压[1]
默认状态下原本的文件会被压缩成为.gz后缀的文件,源文件就不再存在了

bzip2, bzcat/bzmore/bzless/bzgrep

  1. bzip2 [-cdkzv#] 文件名
  2. bzcat 文件名.bz2
  3. bzip2 -9 -c services > services.bz2

xz, xzcat/xzmore/xzless/xzgrep

  1. xz [-dtlkc#] 文件名
  2. xcat 文件名.xz

打包 tar

  1. # 打包压缩
  2. tar [-z|-j|-J] [cv] [-f 待建立的新文件] filename
  3. # 查看文件名
  4. tar [-z|-j|-J] [tv] [-f 既有的tar文件名]
  5. # 解压缩
  6. tar [-z|-j|-J] [xv] [-f 既有的tar文件名] [-C 目录]
  7. -c 打包
  8. -t 查看
  9. -x 解包
  10. -z gzip压缩 文件名 *.tar.gz
  11. -j bzip2 压缩 文件名 *.tar.bz2
  12. -J xz 压缩 文件名 *.tar.xz
  13. -v 显示过程
  14. -f 文件名
  15. -C 目录
  16. -p 保留原本权限
  17. -P 保留绝对路径
  18. -- exclude=FILE 排除不需要打包的文件
  19. # time显示程序运行时间
  20. time tar -zpcv -f /root/etc.tar.gz /etc
  21. # 实际目录约占空间大小1MB
  22. du -sm /etc
  23. # 解包
  24. tar -jxv -f /root/etc.tar.bz2 -C /tmp
  25. # 查包,解单包
  26. tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
  27. tar -jxv -f /root/etc.tar.bz2 etc/shadow
  28. # 排除不需要打包的文件
  29. tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* \
  30. --exclude=/root/system.tar.bz2 /etc /root
  31. # 备份比某个时刻还要新的文件
  32. # find 找出比/etc/passwd还要新的文件
  33. find /etc -newer /etc/passwd
  34. # 打包
  35. tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 \
  36. --newer-mtime="2019/09/08" /etc/*

tarfile

  1. tar -cv -f file.tar

tarball

  1. tar -jcv -f file.tar.bz2

利用管道符与数据流

  1. tar -cvf - /etc | tar -xvf -
  2. cp -r /etc /tmp

详细命令可以通过 man tar 或者 info tar 或者 tar --help 在线查看


参考资料:
鸟哥的Linux私房菜

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注