在 Linux 系统上,打包和压缩文件平常用的比较多,特别对于经常备份的用户。通过压缩便于文件的传输和备份。本文将详细介绍 tar, gzip, bzip2, zip, 7z 等工具的使用方法。
1.tar
tar 是 Linux 下最常用、功能最强大的打包工具,它可以直接调用其他压缩程序。
语法:
tar [选项] [生成的归档文件名] [要打包的文件或目录...]
常用选项:
-c:创建新的归档文件(create)。-x:从归档文件中提取文件(extract)。-z:通过gzip过滤归档文件(处理.tar.gz或.tgz)。-j:通过bzip2过滤归档文件(处理.tar.bz2)。-J:通过xz过滤归档文件(处理.tar.xz)。-v:详细地列出处理的文件(verbose)。-f:指定归档文件名(file)。这个选项必须紧跟在文件名之前。-t:列出归档文件中的内容(list)。-C:解压到指定目录(Change to directory)。
命令组合:
- tar -czvf archive_name.tar.gz file1 dir2 打包并压缩,创建 .tar.gz
- tar -xzvf archive_name.tar.gz 解压 .tar.gz
- tar -cjvf archive_name.tar.bz2 file1 dir2 打包并压缩,创建 .tar.bz2(压缩率高)
- tar -xjvf archive_name.tar.bz2 解压 .tar.bz2
- tar -cJvf archive_name.tar.xz file1 dir2 打包并压缩,创建 .tar.xz(压缩率最高)
- tar -xJvf archive_name.tar.xz 解压 .tar.xz
- tar -cvf archive_name.tar file1 dir2 仅打包,不压缩
- tar -xvf archive_name.tar 解包
- tar -tvf archive_name.tar.gz 不解压,只看内容
- tar -xzvf archive_name.tar.gz -C /path/to/target 解压到指定目录,使用 -C 参数
2.zip / unzip
zip 格式在 Windows 和 Linux 之间通用性最好。
压缩:
zip -r archive_name.zip file1 dir2
-r 参数代表递归,用于压缩目录。
解压:
unzip archive_name.zip
解压到指定目录:
unzip archive_name.zip -d /path/to/target
查看内容:
unzip -l archive_name.zip
3. gzip / gunzip
通常用于压缩单个文件,会生成 .gz 后缀并删除原文件。
压缩:
gzip filename # 生成 filename.gz
解压:
gunzip filename.gz # 或者 gzip -d filename.gz
保留原文件压缩:
gzip -c filename > filename.gz # 或者更常用的: gzip -k filename # 某些版本支持 -k (keep)
4. bzip2 / bunzip2
与 gzip 类似,但压缩率更高,速度稍慢。生成 .bz2 后缀。
压缩:
bzip2 filename # 生成 filename.bz2
解压:
bunzip2 filename.bz2
5. 7z
高压缩率的后起之秀,需要安装 p7zip-full 软件包。
安装:
sudo apt install p7zip-full # Debian/Ubuntu sudo yum install p7zip-full # CentOS/RHEL
压缩:
7z a archive_name.7z file1 dir2
解压:
7z x archive_name.7z