如何在 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 系统管理的基本部分。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP