如何停止 Docker 容器
2024年3月17日Linux 中 nslookup 命令的7个实际示例
2024年3月17日如果您有 zip 压缩文件,可以在 Linux 命令行中解压缩。Linux 中的 unzip 命令非常通用,您可以使用它做很多事情,而不仅仅是解压 zip 文件。
我过去讨论过如何在 Linux 中对文件夹进行 gzip 压缩。现在是时候了解 unzip 命令的各种用法了。在执行此操作之前,请确保您的系统上已安装 unzip。您可以使用发行版的包管理器来安装该命令。
在 Ubuntu 和 Debian 上,您可以使用以下命令:
sudo apt install unzip
验证完毕后,让我们看看如何在 Linux 终端中使用 unzip。
Linux下的解压命令
unzip 命令的语法非常简单:
unzip [option] zip_file
如果您使用它来解压 zip 文件而不使用任何选项,它将解压当前目录中的所有文件:
unzip webdesign.zip
Archive: webdesign.zip
inflating: 339252-PAJF05-394.ai
inflating: 339252-PAJF07-322.eps
inflating: 339252-PALBTI-224.ai
inflating: 339252-PALBTL-394.eps
inflating: 339252-PALBTM-5xyyxirteuntdbifeyejimpqwqxidhhkm.jpg
inflating: License free.txt
inflating: License premium.txt
大多数时候这并不是您想要的。它只会用所有提取的文件淹没您的当前目录。
ls
339252-PAJF05-394.ai 339252-PALBTI-224.ai 339252-PALBTM-5xyyxirteuntdbifeyejimpqwqxidhhkm.jpg 'License premium.txt'
339252-PAJF07-322.eps 339252-PALBTL-394.eps 'License free.txt' webdesign.zip
1.解压到某个目录
预期的行为是您应该将文件提取到某个目录,通常与 zip 文件同名。
您可以指定要提取文件的目标目录。
unzip -d target_directory zip_file
如果目标目录不存在,则会创建它。但您不能以这种方式创建嵌套目录。
请注意,您也可以将目标目录放在最后,但并非所有选项都可以添加在最后。
unzip zip_file -d target_directory
2.无需解压即可查看zip文件内容
如果您想查看 zip 文件包含的内容,您不必总是先解压它。您可以使用该-l
选项,它将显示 zip 文件的内容。
unzip -l zip_file
如您所见,它还显示文件的时间戳和各个文件的实际大小(以字节为单位)。
abhishek@linuxhandbook:$ unzip -l webdesign.zip
Archive: webdesign.zip
Length Date Time Name
--------- ---------- ----- ----
205358 2018-06-18 23:14 339252-PAJF05-394.ai
996906 2018-06-18 23:14 339252-PAJF07-322.eps
213968 2018-06-20 00:00 339252-PALBTI-224.ai
1005362 2018-06-20 00:00 339252-PALBTL-394.eps
305531 2018-06-20 00:00 339252-PALBTM-5xyyxirteuntdbifeyejimpqwqxidhhkm.jpg
1462 2018-06-20 09:45 License free.txt
1116 2018-06-20 09:45 License premium.txt
--------- -------
2729703 7 files
如果需要,您可以通过使用带有选项的详细模式来获取更多信息,例如压缩大小、压缩率-v
。输出中的CRC-32是循环冗余校验。
abhishek@linuxhandbook:$ unzip -v webdesign.zip
Archive: webdesign.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
205358 Defl:N 142097 31% 2018-06-18 23:14 792f2380 339252-PAJF05-394.ai
996906 Defl:N 221228 78% 2018-06-18 23:14 440390d3 339252-PAJF07-322.eps
213968 Defl:N 147568 31% 2018-06-20 00:00 cdb64dfc 339252-PALBTI-224.ai
1005362 Defl:N 226727 77% 2018-06-20 00:00 aed3d97a 339252-PALBTL-394.eps
305531 Defl:N 183363 40% 2018-06-20 00:00 e4ced90f 339252-PALBTM-5xyyxirteuntdbifeyejimpqwqxidhhkm.jpg
1462 Defl:N 728 50% 2018-06-20 09:45 0eb9e17b License free.txt
1116 Defl:N 558 50% 2018-06-20 09:45 165dd84e License premium.txt
-------- ------- --- -------
2729703 922269 66% 7 files
3.覆盖所有文件而不提示
如果您提取文件的目录中已存在同名文件,则每个此类文件都会提升您的级别。您可以使用选项强制覆盖所有文件-o
。
unzip -o -d target_directory zip_file
4.不覆盖任何文件 -n
如果您不希望任何现有文件被新提取的文件覆盖,请使用 -n 选项(代表永不覆盖)。
unzip -n -d target_directory zip_file
5. 更新文件并根据需要创建
这与覆盖所有文件略有不同。在这种情况下,只有那些时间戳比现有文件更新的文件才会被覆盖。如果文件不存在,则会创建该文件。
您可以使用选项 -u 来实现这一点:
unzip -u -d target_directory zip_file
6. 刷新现有文件但不创建任何文件
这里与前面的示例略有不同。在此情况下,如果现有文件具有较旧的时间戳,它将更新它们,但即使它们不存在,它也不会创建任何新文件。
选项 -f 允许您执行此操作:
unzip -f -d target_directory zip_file
7.安静模式提取
当您解压缩文件时,它会在显示屏上显示所有已解压的文件。现在想象一个包含数百个文件的 zip 文件。如果您提取它,您的屏幕将被输出弄乱。
您可以使用带有选项的安静模式-q
,并且显示屏上不会看到任何内容:
unzip -q -d target_directory zip_file
8. 从提取中排除文件
您还可以排除提取某些文件或某些类型的文件。
unzip zip_file -x file_to_exclude
在我的示例中,假设我不想提取任何 .eps 文件。
abhishek@linuxhandbook:$ unzip webdesign.zip -x *.eps
Archive: webdesign.zip
inflating: 339252-PAJF05-394.ai
inflating: 339252-PALBTI-224.ai
inflating: 339252-PALBTM-5xyyxirteuntdbifeyejimpqwqxidhhkm.jpg
inflating: License free.txt
inflating: License premium.txt
这些是 Linux 中 unzip 命令的一些最常见的示例。您可以随时查看其手册页以了解更多选项。
您是否经常使用其他选项来解压缩?为什么不在评论中与我们分享呢?