784 字
4 分钟
Linux 解压缩命令整理
2024-09-22

省流#

Terminal window
tar cavf archive.tar file1 file2 dir1 # 打包成无压缩的 tar 文件
tar cavf archive.tar.gz file1 file2 dir1 # 打包成 gzip 压缩的 tar 文件
tar cavf archive.tar.zst file1 file2 dir1 # 打包成 zstd 压缩的 tar 文件
tar xvf archive.tar # 解压 tar 文件
tar xvf archive.tar -C /path/to/extract # 解压到指定目录
zip -r archive.zip dir1 # 压缩成 zip 文件
unzip archive.zip # 解压 zip 文件
unrar x archive.rar # 解压 rar 文件
unar archive.rar # 解压 rar 文件
unar archive.zip # 解压 zip 文件
unar archive.7z # 解压 7z 文件
7z a archive.7z dir1 # 压缩成 7z 文件
7z x archive.7z # 解压 7z 文件

tar#

tar 是 Linux 环境最常用的打包/归档工具,除了打包成无压缩的 .tar 文件外,也可以直接打包成带压缩的归档文件,如 .tar.gz.tar.xz.tar.zst 等,十分方便。它的一大优势是能够完整保留文件的权限和元数据,因此非常适合在 Linux/Unix 系统之间打包、备份和迁移文件。

压缩:tar cavf

建议使用 -a 参数,这样 tar 会根据归档文件的后缀名自动选择压缩程序,从而避免忘加或者加错压缩参数的问题。

Terminal window
tar cavf archive.tar file1 file2 dir1
tar cavf archive.tar.gz file1 file2 dir1
tar cavf archive.tar.xz file1 file2 dir1
tar cavf archive.tar.zst file1 file2 dir1

解压:tar xvf

Terminal window
tar xvf archive.tar
tar xvf archive.tar -C /path/to/extract # 解压到指定目录

查看内容:tar tvf

Terminal window
tar tvf archive.tar

参数含义

  • -c: create,创建新的归档文件。
  • -x: extract,从归档文件中提取文件。
  • -t: list,列出归档文件中的内容。
  • -v: verbose,显示详细的操作过程。
  • -f: file,指定归档文件的名称。
  • -a: auto-compress,根据归档文件的后缀名自动选择压缩程序。

zip#

在需要和 Windows 系统交换文件时,为了兼容 Windows,可能需要选择 zip 格式。要知道,有些 Windows 用户解压 zip 文件都要看教程

压缩

Terminal window
zip -r archive.zip file1 file2 dir1
zip -r archive.zip dir1
  • -r 表示递归地压缩目录

解压

Terminal window
unzip archive.zip

查看内容

Terminal window
unzip -l archive.zip

unrar#

RAR 是一种闭源、专有的压缩格式,只能通过 WinRAR 压缩,因此在 Linux 上通常只能解压而不能创建。如果没有 RAR 压缩需求,可以用开源的 unrar 工具来解压 RAR 文件。

解压

Terminal window
unrar x archive.rar

查看内容

Terminal window
unrar l archive.rar

unar#

unar 是一个开源的统一解压工具,基本可以替代 unzip, unrar 和 7z 的解压功能。它支持 zip, rar, 7z 等绝大多数常见格式,不过可惜的是目前不支持 zstd。

此外,unar 最大的亮点是能自动处理文件名编码,有时候用 unzip 解压 zip 压缩包会出现中文文件名乱码,换成 unar 解压通常就没有问题。

解压

Terminal window
unar archive.rar
unar archive.7z
unar archive.zip

查看内容

Terminal window
lsar archive.rar
lsar archive.7z
lsar archive.zip

7z#

7z 的优势在于跨平台兼容性,以及很高的压缩比。在 Windows 上有不少人用,不过如果不考虑跨平台兼容性,个人认为 tar.zst 是更好的选择,zstd 的压缩和解压速度明显更快,压缩比也很高。

压缩

Terminal window
7z a archive.7z file1 file2 dir1

解压

Terminal window
7z x archive.7z

查看内容

Terminal window
7z l archive.7z
Linux 解压缩命令整理
https://symmfz.vercel.app/posts/linux-archive-commands-cheatsheet/
作者
SymmFz
发布于
2024-09-22
许可协议
CC BY-NC-SA 4.0