Linux中解压缩命令unzip
如果我们有一个zip压缩文件,则可以在Linux命令行中解压缩它。
Linux中的Unzip命令非常多功能,我们可以使用它不仅仅是提取zip文件。
我已经讨论了如何在过去的Linux中gzip一个文件夹。
现在是时候看到了解压缩命令的各种用法了。
在我们这样做之前,请确保系统上已安装Unzip。
我们可以使用分发的包管理器安装命令。
在Ubuntu和Debian上,我们可以使用此命令:
sudo apt install unzip
一旦我们验证了,让我们看看如何在Linux终端中使用解压缩。
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-53.jpg inflating: License free.txt inflating: License premium.txt
这不是你大部分时间都想要的。
它只会使用所有提取的文件淹没当前目录。
ls 339252-PAJF05-394.ai 339252-PALBTI-224.ai 339252-PALBTM-53.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
如我们所见,它还显示文件的时间戳和单个文件的实际大小以字节为单位。
Hyman@theitroad:$unzip -l webdesign.zip Archive: webdesign.zip Length Date Time Name --------- ---------- ----- --- 205358 2016-06-18 23:14 339252-PAJF05-394.ai 996906 2016-06-18 23:14 339252-PAJF07-322.eps 213968 2016-06-20 00:00 339252-PALBTI-224.ai 1005362 2016-06-20 00:00 339252-PALBTL-394.eps 305531 2016-06-20 00:00 339252-PALBTM-53.jpg 1462 2016-06-20 09:45 License free.txt 1116 2016-06-20 09:45 License premium.txt --------- ------ 2729703 7 files
如果需要,我们可以通过使用具有"-V"选项的详细模式,获得更多的信息,如压缩大小,压缩比。
输出中的CRC-32是循环冗余校验。
Hyman@theitroad:$unzip -v webdesign.zip Archive: webdesign.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- --- 205358 Defl:N 142097 31% 2016-06-18 23:14 792f2380 339252-PAJF05-394.ai 996906 Defl:N 221228 78% 2016-06-18 23:14 440390d3 339252-PAJF07-322.eps 213968 Defl:N 147568 31% 2016-06-20 00:00 cdb64dfc 339252-PALBTI-224.ai 1005362 Defl:N 226727 77% 2016-06-20 00:00 aed3d97a 339252-PALBTL-394.eps 305531 Defl:N 183363 40% 2016-06-20 00:00 e4ced90f 339252-PALBTM-53.jpg 1462 Defl:N 728 50% 2016-06-20 09:45 0eb9e17b License free.txt 1116 Defl:N 558 50% 2016-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文件。
如果提取它,则屏幕将与输出混淆。
我们可以使用Quiet模式与Option-Q
,我们不会在显示屏上看到任何内容:
unzip -q -d target_directory zip_file
8.排除提取中的文件
我们还可以从提取的某些文件中排除某些文件或者某些类型的文件。
unzip zip_file -x file_to_exclude
在我的例子中,假设我不想提取任何.eps文件。
Hyman@theitroad:$unzip webdesign.zip -x *.eps Archive: webdesign.zip inflating: 339252-PAJF05-394.ai inflating: 339252-PALBTI-224.ai inflating: 339252-PALBTM-53.jpg inflating: License free.txt inflating: License premium.txt