目录

Linux 压缩与解压命令大全:从入门到精通

在 Linux 系统上,打包和压缩文件平常用的比较多,特别对于经常备份的用户。通过压缩便于文件的传输和备份。本文将详细介绍 targzipbzip2zip7z 等工具的使用方法。

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