如何在 Linux 中压缩文件?
介绍
Linux 是流行的开源操作系统,附带了一组有用的工具和命令,您可以利用它们来完成日常任务。其中一项任务就是文件压缩,Linux 提供了各种方法来压缩文件和目录。本指南将引导您了解如何使用“gzip”、“zip”和“tar”等命令在 Linux 中压缩文件。
使用“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”命令排除文件
如果要压缩目录但排除某些文件,可以使用“--exclude”选项和“tar”来实现 -
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 中解压缩文件也是一个简单的过程。您可以对“gzip”文件使用“gunzip”命令,对“tar.gz”文件使用“tar”命令,对“zip”文件使用“unzip”命令。
例如 -
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 系统管理的基本部分。