在 Linux 中一些压缩工具仅支持对单文件进行操作,如果想对目录或多文件进行压缩,则必须先打包成一个文件,然后再进行压缩。
gzip
解压缩,后缀名gz
。
# 压缩,将删除原文件gzip filename# 压缩,保留原文件gzip -c filename > filename.gz# 解压gzip -d filename.gz
注:gzip 只能针对普通文件进行压缩和解压,不支持文件夹和符号链接。
bzip2
解压缩,后缀名bz2
。
# 压缩,将删除源文件bzip2 filename# 压缩,保留原文件bzip2 -c filename > filename.bz2# 解压,同 bunzip2bzip2 -d filename.bz2
xz
解压缩,后缀名xz
。
# 压缩,默认保留源文件xz filename# 解压xz -d filename.xz
tar
打包解包,后缀名tar
。
# 打包并压缩指定目录tar -czvf filename.tar.gz dir# 指定压缩等级,默认 6,最高 9tar 9 -czvf filename.tar.gz dir# 解压缩tar -xzvf filename.tar.gz# 只查看,不解压tar -ztvf filename.tar.gz
可以发现压缩、解压和查看三个参数只有一个区别,它们分别表示:
- -c:压缩
- -x:解压
- -t:查看
另外的几个参数都是一致的:
- -z:使用 gzip 进行解压缩
- -v:显示执行过程
- -f:指定文件名
另外也支持 bzip2 和 xz 的解压缩:
# bzip2 打包并压缩tar -jcvf filename.tar.bz2 dirname# bzip2 解包并解压tar -jxvf filename.tar.bz2# xz 打包并压缩tar -jcvf filename.tar.xz dirname# xz 解包并解压tar -jxvf filename.tar.xz
- -j:使用 bzip2 进行解压缩
- -J:使用 xz 进行解压缩
zip
打包解包和解压缩文件,后缀名zip
。
# 压缩 zip(默认保留源文件)zip -r filename.zip dirname# 解压 unzipunzip filename.zip# 解压到指定目录unzip -d nfname/ filename.zip