常见的几种压缩文件扩展名:
- *.Z compress 程序压缩的文件
- *.zip zip 程序压缩的文件
- *.gz gzip 程序压缩的文件
- *.bz2 bzip2 程序压缩的文件
- *.xz xz 程序压缩的文件
- *.tar tar 程序打包的文件,并且没有被压缩过
- *.tar.gz tar 程序打包的文件,并且经过 gzip 的压缩
- *.tar,bz2 tar 程序打包的文件,并且经过 bzip2 的压缩
- *.tar.xz tar 程序打包的文件,并且经过 xz 的压缩
如上所示,单纯的 tar 只能进行打包,并不能对文件或者目录进行压缩。
gzip, zcat/zmore/zless/zgrep
gzip
gzip 可以解开 compress zip gzip 等软件压缩的文件。
如上所示是常用的几个参数。
> gzip -v text.txt
-v 可以显示压缩比
zcat 查看压缩文件
> zcat text.txt.gz
> gzip -d test.txt.gz
解压缩失败?我用的 root 用户竟然解压缩失败?
> lsattr
查看一下隐藏属性,果然加了 i 忘了去掉
> chattr
get!
chattr、lsattr 具体内容参考 https://blog.csdn.net/wjavadog/article/details/99698995
> zgrep -n 'hello' test.txt.gz
xz,xzcat/xzmore/xzless/xzgrep
> xz -v test.txt
命令和 gzip 一样。
打包命令:tar
以上命令都只能针对文件,tar 可以将多个目录或文件打包成一个大文件。
> time tar -zpcv /root/etc.tar.gz /etc
- z 通过 gzip 的支持进行压缩/解压缩: 文件最好命名为 *.tar.gz
- p(小写) 保留备份数据的原本权限和属性,常用于备份重要的配置文件
- c 建立打包文件,可搭配 -v 查看打包过程中的文件
- v 在压缩/解压缩的过程中,将正在处理的文件名显示出来
> du -sm /etc
du 查看目录所占空间(MB)
> tar -ztv -f xxx.tar.gz
可以看到,压缩的文件全部去掉了 “/”,这是因为防止解压缩时,覆盖掉 /etc 下的文件
解压
> tar -zxv -f /root/etc.tar.gz -C /tmp
打包的时候不要某些文件:
– exclude
> time tar -zcvf test1.tar.gz test --exclude=test2