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的压缩 |
zip
zip [选项] 压缩后文件.zip 欲压缩文件
- -q 压缩的时候不显示压缩过程
- -r 将指定目录下的目录及文件一起处理
- -m 将文件压缩后删除源文件
- -u 更新压缩文件,向压缩文件中添加新文件
压缩某个文件:zip -q a.zip /home/b.txt
压缩目录:zip -r /home
向a.zip中添加文件:zip -u /home/c.txt
unzip
unzip [选项] 文件名
解压缩某个zip文件:unzip 压缩文件.zip
解压缩某个zip文件至指定目录下:unzip 压缩文件.zip -d 目录
查看压缩文件但不解压:unzip -v 压缩文件.zip
gzip
gzip 【选项】 文件名
- -c 将压缩的数据输出到屏幕上,可通过数据流重定向来处理;
- -d 解压缩;
- -t 校验一个压缩文件的一致性,是否有错;
- -v 压缩,显示 源文件/压缩文件 的压缩比信息;
- -# #代表数字,是压缩等级,-1 最快,但是压缩比最差;-9 最慢,但是压缩比最好,预设是-6;
压缩某个文件:gzip -v 文件名
解压缩某个文件:gzip -d 文件名
将某个文件压缩并保留原文件:gzip -c 文件名 > 压缩后文件名
查看压缩文件内容:zcat 压缩文件
查找压缩文件中关键词:zgrep -n ‘关键词’ 压缩文件名
bzip2
bzip2 【选项】 文件名
- -k 保留源文件
- 其余选项通gzip。
xz
xz 同 bzip2。
tar
压缩: tar -jcv -f 压缩文件名.tar.bz2 要被压缩的文件或目录名称
查询: tar -jtv -f 压缩文件名.tar.bz2
解压缩:tar -jxv -f 压缩文件名.tar.bz2 -C 欲解压缩后放置的目录
- -c 建立打包文件
- -t 查看打包文件的内容含有哪些文件名
- -x 解打包和解压缩的功能
- -z 使用gzip进行压缩或解压缩,此时文件名应为 filename.tar.gz
- -j 使用bzip2进行压缩或解压缩,此时文件名应为 filename.tar.bz2
- -J 使用xz进行压缩或解压缩,此时文件名应为 filename.tar.xz
- -v 在压缩或解压缩过程中,将正在处理的文件名显示出来
- -f 后面要立刻接要被处理的文件名建议单独写一个选项
- -C 在解压缩时指定解压至哪个目录
- -p 保留备份数据的原本权限和属性,常用于备份重要配置文件
- -P 保留绝对路径,即允许备份数据中含有根目录;解压缩时不指定目录的话,会覆盖当前系统中和备份数据路径一样的文件
实例
备份 /etc 目录,并保留原文件属性,不含根目录
tar -jcvp -f etc.tar.bz2 /etc
查看备份文件etc.tar.bz2中内容
tar -jtv -f etc.tar.bz2
解压缩备份文件etc.tar.bz2
tar -jxv -f etc.tar.bz2 -C 目标目录
单独解压压缩包中的shadow文件
tar -jtv -f etc.tar.bz2 | grep ‘shadow’
打包/etc目录,但是不包含该目录下的fonts、firewall目录
tar -jcv -f etc.tar.bz2 --exclude=/etc/fonts --exclude=/etc/firewall /etc