如何从linux终端压缩或解压文件

ZIP文件是一种通用的归档文件,通常用于Windows、macOS甚至Linux系统。您可以使用一些常见的Linux终端命令创建zip存档或从其中解压文件。...

ZIP文件是一种通用的归档文件,通常用于Windows、macOS甚至Linux系统。您可以使用一些常见的Linux终端命令创建zip存档或从其中解压文件。

zip压缩的存档文件格式

由于ZIP格式在Windows领域的主导地位,ZIP文件可能是世界上最常见的压缩存档形式。

一会儿。焦油.gz以及焦油bz2文件在Linux上很常见,Windows用户可能会以ZIP格式向您发送存档文件。而且,如果您想归档一些文件并将它们发送给Windows用户,ZIP格式将是最简单、最兼容的解决方案。

相关:如何从文件中提取文件。焦油.gz或者。焦油bz2Linux上的文件

zip、unzip和其他实用程序

您可能已经知道,Linux和类似Unix的操作系统(如macOS)具有允许您创建ZIP文件并从中提取文件的工具,称为ZIP和unzip。但是有一系列相关的实用程序,比如zipcloak、zipdetails、zipsplit和zipinfo。

我们检查了一些Linux发行版,看看它们是否在标准安装中包含这些实用程序。所有这些实用程序都出现在ubuntu19.04、18.10和18.04中。它们也出现在Manjaro 18.04。Fedora29包括zip和unzip,但没有其他实用程序,CentOS也是如此。

要在Fedora 29上安装缺少的元素,请使用以下命令:

sudo dnf install perl-IO-Compress

如何从linux终端压缩或解压文件

要在CentOS 7上安装缺少的元素,请使用以下命令:

sudo yum install perl-IO-Compress

如何从linux终端压缩或解压文件

如果上面没有提到的Linux发行版中缺少任何zip实用程序,请使用该Linux发行版的包管理工具安装所需的包。

如何使用zip命令创建zip文件

要创建ZIP文件,需要告诉ZIP归档文件的名称以及要包含哪些文件。您不需要将“.zip”扩展名添加到存档名称中,但这样做并没有什么坏处。

创建名为source的文件_代码.zip包含当前目录中的所有C源代码文件和头文件,可以使用以下命令:

zip source_code *.c *.h

如何从linux终端压缩或解压文件

每个文件在添加时都会列出。将显示文件名以及在该文件上实现的压缩量。

如何从linux终端压缩或解压文件

如果您查看新的ZIP存档文件,您可以看到“.ZIP”文件扩展名是由ZIP自动添加的。

ls -l source_code.zip

如何从linux终端压缩或解压文件

如果不希望在创建zip文件时看到zip的输出,请使用-q(quiet)选项。

zip -q source_code *.c *.h

如何从linux终端压缩或解压文件

包括zip文件中的目录

要在ZIP文件中包含子目录,请使用-r(递归)选项并在命令行中包含子目录的名称。要像以前一样创建ZIP文件并包含存档子目录,请使用以下命令。

zip -r -q source_code archive/ *.c *.h

如何从linux终端压缩或解压文件

为了体谅将从您创建的ZIP文件中提取文件的人,通常有礼貌地创建ZIP文件,其中的文件包含在目录中。当接收ZIP文件的人提取它时,所有文件都整齐地放在他们计算机上的一个目录中。

在下面的命令中,我们将归档工作目录和所有子目录。请注意,此命令是从工作文件夹的父目录发出的。

zip -r -q source_code work/

如何从linux终端压缩或解压文件

设置压缩级别

您可以设置将文件添加到ZIP存档时对其应用的压缩量。范围从0到9,0表示完全没有压缩。压缩越高,创建ZIP文件的时间就越长。对于大小适中的ZIP文件,时间差不是很大的损失。但是,对于大小适中的ZIP文件,默认压缩(级别6)可能已经足够好了。

要使zip使用特定级别的压缩,请在命令行上以“-”作为选项传递数字,如下所示:

zip -0 -r -q source_code work/

如何从linux终端压缩或解压文件

默认压缩级别为6。没有必要提供-6选项,但如果您这样做,它不会造成任何伤害。

zip -r -q source_code work/

如何从linux终端压缩或解压文件

最大压缩级别为9级。

zip -9 -r -q source_code work/

如何从linux终端压缩或解压文件

在这里存档选择的文件和目录中,无压缩(级别0)和默认压缩(级别6)之间的差异为400K。默认压缩和最高压缩级别(级别9)之间的差异仅为4K。

这看起来可能不多,但对于包含数百甚至数千个文件的档案来说,每个文件的少量额外压缩加起来就可以节省空间。

向zip文件添加密码

向ZIP文件添加密码很容易。使用-e(加密)选项,系统将提示您输入密码并重新输入以进行验证。

zip -e -r -q source_code work/

如何从linux终端压缩或解压文件

如何使用unzip命令解压缩zip文件

要从ZIP文件中提取文件,请使用unzip命令,并提供ZIP文件的名称。请注意,您确实需要提供“.zip”扩展名。

unzip source_code.zip

如何从linux终端压缩或解压文件

在提取文件时,这些文件将列在终端窗口中。

如何从linux终端压缩或解压文件

ZIP文件不包含文件所有权的详细信息。所有提取的文件都将所有者设置为提取它们的用户。

就像zip一样,unzip有一个-q(quiet)选项,这样您就不需要在提取文件时看到文件列表。

unzip -q source_code.zip

如何从linux终端压缩或解压文件

将文件解压缩到目标目录

要在特定目录中提取文件,请使用-d(directory)选项,并提供要将存档文件提取到的目录的路径。

unzip -q source_code.zip -d ./development

如何从linux终端压缩或解压文件

解压缩受密码保护的zip文件

如果ZIP文件是用密码创建的,unzip将要求您输入密码。如果您没有提供正确的密码,解压缩将不会提取文件。

unzip -q source_code.zip

如何从linux终端压缩或解压文件

如果您不关心您的密码是否被其他人看到,也不关心它是否存储在您的命令历史记录中,您可以在命令行中使用-P(password)选项提供密码。(必须使用大写“P”)

unzip -P fifty.treacle.cutlass -q source_code.zip

如何从linux终端压缩或解压文件

排除文件

如果不想提取特定文件或文件组,请使用-x(排除)选项。在本例中,我们要提取除以“.h”扩展名结尾的文件以外的所有文件。

unzip -q source_code.zip -x *.h

如何从linux终端压缩或解压文件

覆盖文件

假设您提取了一个归档文件,但错误地删除了一些提取的文件。

一个快速修复方法是再次提取文件。但是,如果您尝试在与以前相同的目录中提取ZIP文件,unzip将提示您决定覆盖这些文件。它将期待以下回应之一。

除了r(rename)响应外,这些响应区分大小写。

  • y:是的,覆盖这个文件
  • n:不,不要覆盖这个文件
  • A:全部,覆盖所有文件
  • N:无,覆盖所有文件
  • r:重命名,提取这个文件,但是给它一个新的名字。系统将提示您输入新名称。

如何从linux终端压缩或解压文件

要强制解压缩以覆盖任何现有文件,请使用-o(overwrite)选项。

unzip -o -q source_code.zip

如何从linux终端压缩或解压文件

替换丢失的文件最有效的方法是只解压缩归档文件中不在目标目录中的任何文件。为此,请使用-n(从不覆盖)选项。

unzip -n source_code.zip

如何从linux终端压缩或解压文件

查看zip文件

在解压缩ZIP文件之前,查看ZIP文件中的文件列表通常很有用,而且很有启发性。您可以使用-l(list archive)选项来实现这一点。它通过较少的管道传输以使输出易于管理。

unzip -l source_code.zip | less

如何从linux终端压缩或解压文件

输出显示ZIP文件中的目录和文件、它们的长度以及它们添加到存档的时间和日期。按“q”从“less”退出。

如何从linux终端压缩或解压文件

我们将看到,还有其他方法可以窥视ZIP文件内部,这些文件提供不同类型的信息。

使用zipcloak命令添加密码

如果您创建了一个ZIP文件,但忘记添加密码,您能做什么?您可以使用zipcloak命令向ZIP文件快速添加密码。在命令行上传递ZIP文件的名称。系统将提示您输入密码。您需要再次输入密码来验证密码。

zipcloak source_code.zip

如何从linux终端压缩或解压文件

使用zipdetails命令查看文件详细信息

zipdetails命令将向您显示许多有关ZIP文件的信息。处理此命令所能提供的输出量的唯一合理方法是通过较少的管道传递它。

zipdetails source_code.zip | less

如何从linux终端压缩或解压文件

请注意,即使ZIP文件受密码保护,这些信息也将包括文件名。这种类型的信息作为元数据存储在ZIP文件中,而不是加密数据的一部分。

如何从linux终端压缩或解压文件

使用zipgrep命令搜索文件内部

zipgrep命令允许您在ZIP文件中的文件中进行搜索。在下面的示例中,我们想知道ZIP文件中哪些文件中有文本“keyval.h”。

zipgrep keyval.h source_code.zip

如何从linux终端压缩或解压文件

我们可以看到slang.c和getval.c文件包含字符串“keyval.h”。我们还可以看到,在ZIP文件的不同目录中,每个文件都有两个副本。

使用zipinfo命令查看信息

zipinfo命令提供了另一种查看ZIP文件内部的方法。像以前一样,我们通过更少的管道输出。

zipinfo source_code.zip | less

如何从linux终端压缩或解压文件

从左到右,输出显示:

  • 文件权限
  • 用于创建ZIP文件的工具的版本
  • 原始文件大小
  • 文件描述符(如下所述)
  • 压缩的方法(在这种情况下是压缩)
  • 数据和时间戳
  • 文件和任何目录的名称

文件描述符由两个字符组成。第一个字符是“t”或“b”,表示文本或二进制文件。如果是大写字母,则对文件进行加密。第二个字符可以是四个字符中的一个。此字符表示此文件包含的元数据类型:无、扩展本地头、“额外字段”或两者兼有。

  • -:如果两者都不存在,则字符将是连字符
  • l:如果有一个扩展的本地头,但没有额外的字段
  • x:如果没有扩展的本地头,但是有一个额外的字段
  • X:如果有一个扩展的本地头并且有一个额外的字段

如何从linux终端压缩或解压文件

使用zipsplit命令拆分文件

如果需要将ZIP文件发送给其他人,但文件的传输存在大小限制或问题,可以使用zipsplit命令将原始ZIP文件拆分为一组较小的ZIP文件。

n(size)选项允许您为每个新ZIP文件设置最大大小。在本例中,我们将拆分源_代码.zip文件。我们不希望任**的ZIP文件大于100KB(102400字节)。

zipsplit -n 102400 source_code.zip

如何从linux终端压缩或解压文件

您选择的大小不能小于ZIP文件中任何文件的大小。

使用这些命令,您可以创建自己的ZIP文件,解压缩接收到的ZIP文件,并在这些文件上执行各种其他操作,而无需离开Linux终端。

  • 发表于 2021-04-03 14:07
  • 阅读 ( 169 )
  • 分类:互联网

你可能感兴趣的文章

如何在linux中设置raspberry pi

...dows计算机的,但是,如果您运行的是Linux,您可能不知道如何成功地设置Raspberry Pi。 ...

  • 发布于 2021-03-13 11:04
  • 阅读 ( 227 )

如何在不下载的情况下解压google驱动器中的文件

无论你在哪里,你都需要一个可以解压压缩文件的工具。毕竟,ZIP文件是网络的数字信使——在共享文件方面仅次于PDF。 ...

  • 发布于 2021-03-17 18:25
  • 阅读 ( 247 )

如何在mac上打开和提取rar文件

...速概述中,您将了解有关RAR文件是什么、存在的原因以及如何在Mac上打开和提取RAR文件内容的所有信息。 ...

  • 发布于 2021-03-25 09:15
  • 阅读 ( 284 )

如何隐藏linux上的文件和文件夹

... 我们已经介绍了如何在Windows和Mac上隐藏文件和文件夹。下面介绍如何在Linux上使用终端和Ubuntu中的文件管理器Nautilus隐藏文件和文件夹。我们还将讨论几种安全地隐藏文件和文件夹的方法...

  • 发布于 2021-03-25 15:00
  • 阅读 ( 400 )

linux中如何隐藏图像中的文件

... 但如果你的家人和朋友中有人精通技术,他们就会知道如何查看你隐藏的文件和文件夹。因此,您需要一种不太明显的方式来隐藏文件和文件夹。您可以使用一种称为隐写术的数据加密形式,它将信息隐藏在普通图像文件中。...

  • 发布于 2021-03-26 09:53
  • 阅读 ( 160 )

用steam将arch-linux变成一个游戏系统

...您仍然可以使用第三方资源在Arch上安装Steam。我们将讨论如何在Arch上下载Steam,以及如何解决安装期间或之后可能出现的一些常见问题。 ...

  • 发布于 2021-03-26 21:06
  • 阅读 ( 257 )

如何在windows10中解压文件

每个人都应该知道的一个基本Windows函数是如何解压缩文件。这并不难,事实上,这个选项就在操作系统内部。 ...

  • 发布于 2021-03-27 04:26
  • 阅读 ( 449 )

如何在mac上制作zip文件

... 本指南将介绍什么是ZIP文件,以及如何在macOS中创建ZIP文件。 ...

  • 发布于 2021-03-28 16:40
  • 阅读 ( 334 )

如何使用powershell压缩(和解压)文件

...加密了数据,并使与其他人共享文件变得容易。下面介绍如何使用PowerShell压缩和解压文件。 如何使用powershell压缩文件 让我们首先使用Compress-archive cmdlet将一些文件压缩到ZIP文件存档中。它获取要压缩的任何文件的路径。多个...

  • 发布于 2021-04-02 01:39
  • 阅读 ( 227 )

如何在mac上压缩和解压文件和文件夹

...用程序,而是一个深入集成到Finder应用程序中的功能。 如何在mac上压缩文件和文件夹 要开始,请打开“Finder”应用程序,找到要压缩的文件或文件夹。如果要选择多个文件,请在选择文件时按住Command键。 一旦你做了选择,右...

  • 发布于 2021-04-02 03:45
  • 阅读 ( 179 )
我爱森森哈哈
我爱森森哈哈

0 篇文章

相关推荐