如何在 Linux 中压缩文件?


简介

Linux 是一种流行的开源操作系统,它带有一套有用的工具和命令,您可以利用这些工具和命令来完成日常任务。其中一项任务是文件压缩,Linux 提供了多种方法来压缩或解压缩文件和目录。本指南将引导您了解如何在 Linux 中使用“gzip”、“zip”和“tar”等命令压缩文件。

使用“gzip”命令

“gzip”(GNU zip)是 Linux 中广泛使用的文件压缩命令。以下是如何使用它的示例:

gzip filename.txt

此命令将压缩文件“filename.txt”并将其重命名为“filename.txt.gz”。原始文件“filename.txt”将被删除并替换为压缩版本。

但是,“gzip”仅适用于单个文件。如果您想压缩目录,则需要将“tar”与“gzip”结合使用。

将“tar”和“gzip”命令结合使用

“tar”命令是一个磁带归档程序,可以从归档文件中存储和提取文件。以下是如何将其与“gzip”结合使用以压缩目录:

tar -czvf archive_name.tar.gz directory_name/

此命令从目录“directory_name”创建一个名为“archive_name.tar.gz”的 gzip 压缩 tar 归档文件。“c”标志创建新的归档文件,“z”压缩归档文件,“v”提供详细输出,“f”允许您指定归档文件名。

输出可能如下所示:

directory_name/
directory_name/file1.txt
directory_name/file2.txt

使用“zip”命令

大多数 Linux 发行版默认情况下未安装“zip”命令,但您可以使用特定发行版的包管理器安装它。例如,在 Ubuntu 或 Debian 上,您可以使用以下命令安装它:

sudo apt-get install zip

安装完成后,您可以像这样压缩单个文件:

zip archive_name.zip filename.txt

这将创建一个名为“archive_name.zip”的 zip 归档文件,其中包含“filename.txt”。

要压缩目录,请使用“-r”(递归)选项:

zip -r archive_name.zip directory_name/

此命令递归地将目录“directory_name”及其内容压缩到“archive_name.zip”中。

输出将是:

adding: directory_name/ (stored 0%)
   adding: directory_name/file1.txt (deflated 36%)
   adding: directory_name/file2.txt (deflated 29%)

使用“gzip”命令设置不同的压缩级别

“gzip”命令支持各种压缩级别,从 1(最快,压缩率最低)到 9(最慢,压缩率最高)。默认级别为 6。以下是如何使用其他级别:

gzip -9 filename.txt

此命令将使用最大压缩级别压缩“filename.txt”。

使用“tar”和“gzip”命令排除文件

如果您想压缩目录但要排除某些文件,可以使用“tar”的“--exclude”选项:

tar -czvf archive_name.tar.gz --exclude='directory_name/file_to_exclude.txt' directory_name/

此命令将创建“directory_name”的压缩 tar 归档文件,但不会包含文件“file_to_exclude.txt”。

使用“zip”命令添加或删除文件

“zip”命令还允许您从现有的 zip 归档文件中添加或删除文件:

zip -d archive_name.zip file_to_remove.txt

此命令将从“archive_name.zip”中删除“file_to_remove.txt”。

zip archive_name.zip file_to_add.txt

此命令将“file_to_add.txt”添加到“archive_name.zip”中。

使用“bzip2”命令

“bzip2”是您可以使用的另一个压缩工具。它通常比“gzip”提供更好的压缩率,但速度也较慢。

bzip2 filename.txt

此命令将“filename.txt”压缩到“filename.txt.bz2”中。原始文件将被压缩版本替换。要解压缩,请使用“bunzip2”:

bunzip2 filename.txt.bz2

此命令将“filename.txt.bz2”解压缩回“filename.txt”。

同样,就像“gzip”一样,“bzip2”不支持压缩目录。为此,您需要将其与“tar”结合使用:

tar -cjvf archive_name.tar.bz2 directory_name/

此命令从目录“directory_name”创建一个名为“archive_name.tar.bz2”的“bzip2”压缩 tar 归档文件。“j”选项用于“bzip2”压缩。

使用密码保护 Zip 文件

“zip”命令允许您使用“-e”(加密)选项使用密码保护 zip 归档文件:

zip -e secure.zip file.txt

运行此命令时,系统将提示您输入密码。该文件将被压缩到“secure.zip”中,并且需要密码才能解压缩内容。

使用“gzip”处理多个文件

虽然“gzip”主要用于处理单个文件,但您可以通过先使用“tar”将文件捆绑在一起,然后将多个文件压缩到单个 gzip 归档文件中:

tar -cf - file1.txt file2.txt | gzip > files.tar.gz

此命令从“file1.txt”和“file2.txt”创建 tar 文件(“-cf -”),然后将 tar 文件(“|”)传递给“gzip”,并将输出重定向到“files.tar.gz”。

列出 Tar 或 Zip 文件的内容

您可以分别使用“-tf”或“-l”选项列出 tar 或 zip 文件的内容,而无需提取它:

tar -tf archive.tar.gz

此命令列出“archive.tar.gz”的内容。

unzip -l archive.zip

此命令列出“archive.zip”的内容。

使用“7zip”命令

“7zip”是另一个功能强大的文件归档程序,具有很高的压缩率。但是,它通常不会在大多数 Linux 发行版上默认安装。您可以使用您的包管理器安装它。例如,在 Ubuntu 或 Debian 上:

sudo apt-get install p7zip-full

要使用“7zip”压缩文件或目录,请使用“7z”命令:

7z a archive.7z filename.txt

此命令将“filename.txt”压缩到“archive.7z”中。“a”选项表示我们正在添加到归档文件中。

7z a archive.7z directory_name/

此命令将目录“directory_name”压缩到“archive.7z”中。

要提取“7z”文件,请使用“e”(提取)或“x”(使用完整路径提取)选项:

7z e archive.7z

此命令将“archive.7z”中的文件提取到当前目录。

在 Linux 中解压缩文件

在 Linux 中解压缩文件也是一个简单的过程。您可以使用“gunzip”命令处理“gzip”文件、“tar”处理“tar.gz”文件和“unzip”处理“zip”文件。

例如:

gunzip filename.txt.gz

此命令将“filename.txt.gz”解压缩回“filename.txt”。

tar -xzvf archive_name.tar.gz

此命令将“archive_name.tar.gz”的内容提取到当前目录。

unzip archive_name.zip

此命令将“archive_name.zip”的内容提取到当前目录。

结论

文件压缩是管理存储和传输 Linux 中文件的重要任务。无论您使用“gzip”、“tar”还是“zip”,这些命令都提供了可靠且灵活的方法来压缩 Linux 系统上的文件和目录。了解这些命令是精通 Linux 系统管理的基本部分。

更新于: 2023-07-17

4K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告
© . All rights reserved.