刚刚从互联网下载了一个.zip文件。我想使用终端解压缩文件。正确的方法是什么?

评论

从当前文件夹中提取所有文件,您可以使用:解压\ *。zip

@burtsevyg那里不需要反斜杠。它将使shell将\ *当作文字星号。只需使用* .zip解压缩使shell扩展*至所有以.zip结尾的文件

单独使用*对我不起作用。它导致文件名不匹配错误。 \ *完成了工作。

我建议您使用&学习“ unar”,而不要使用zip特定的版本,除非您需要特定的功能。 “支持的文件格式包括Zip,Tar-GZip,Tar-BZip2,RAR,7-zip,LhA,StuffIt以及许多其他古老而晦涩的格式。”。

Ubuntu已经安装了多个压缩/解压缩工具。从控制台运行apropos zip以获取完整列表。

#1 楼

如果系统上尚未安装unzip命令,请运行:

sudo apt-get install unzip


安装解压缩实用程序后,如果要提取到特定的目标文件夹,您可以使用:

unzip file.zip -d destination_folder


如果源目录和目标目录相同,则只需执行以下操作:

unzip file.zip


评论


如果您已经在目录中,则要解压缩文件,请省略第二个和第三个参数,即解压缩/path/to/file.zip

– Severo Raz
13年5月26日在19:13

我刚刚使用了此命令。这是一个例子。步骤1(我已更改为存储zip文件的目录):cd / home / paf / Copy / Programming / Javascript / Json步骤2(我将zip文件解压缩到刚才提到的目录中):unzip file.zip- d / home / paf /复制/编程/ Javascript / Json

–pablofiumara
13年11月12日在1:10



解压缩可能是默认程序。换句话说,您可能不需要安装它。

– noobninja
16年5月31日在19:33

@Aevi检查手册页[-d exdir]要将文件提取到的可选目录。

–肯利
17年1月11日在11:26

确保将其解压缩到一个目录,而不是tar存档,您可能会发现许多人的zip文件的根目录中包含数十个文件,这真是一团糟!

–史蒂夫
17年5月17日下午6:13

#2 楼

您只需使用unzip即可。

安装它:

apt-get install unzip


并使用它:

cd /path/to/file
unzip file.zip


#3 楼

一个更有用的工具是7z,它可以压缩和解压缩一系列压缩格式,特别是lzma,通常是提供最高压缩率的协议。

此命令将安装7z

sudo apt-get install p7zip-full


此命令列出zip的内容:

7z l zipfile.zip


此命令提取zip的内容:

7z x zipfile.zip


评论


7z e不保留目录结构-7z x保留...

–叙利亚
13-10-23在12:59

13.10说7z不存在。我认为它必须sudo apt-get install 7zip

–nitishch
13-10-26在19:04

我认为install命令应该是sudo apt-get install p7zip或sudo apt-get install p7zip-full您需要完整版本才能获取7z命令。完整版也是处理zip和其他格式的两种格式中的唯一一种。

–Automatico
13-10-30在20:15



您能否澄清“更有用的工具”?您要比解压缩吗?您能否提供任何使7z更加有用的功能示例,以及在哪种情况下首选7z?

– David LeBauer
15年9月29日在22:17

对于某些解压缩更为有用:易于使用且易于记忆。

–user484419
16年1月20日在7:25

#4 楼

您可以使用:

unzip file.zip -d somedir


提取到yourpath/somedir

如果要提取到绝对路径,请使用

sudo unzip file.zip -d /somedir


#5 楼

使用脚本工具:Perl和Python

这里有很多答案提到需要安装的工具,但是没有人提到Ubuntu的两种脚本语言Perl和Python已经附带了所有必需的模块,这些模块允许您执行以下操作:解压缩zip存档,这意味着您无需安装其他任何文件。只需使用下面介绍的两个脚本之一即可完成工作。它们相当短,如果我们愿意的话,甚至可以简化为单行命令。

Python

 #!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
    pzf = PyZipFile(zip_file)
    pzf.extractall()
 


用法:

./pyunzip.py master.zip 




python3 pyunzip.py master.zip


> Perl

 #!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
    my $archive = Archive::Extract->new( archive => $filepath );
    $archive->extract;
}
 


用法:

./perlunzip master.zip




perl perlunzip.pl master.zip


另请参阅



脚本以提取tar.gz档案。 br />如何为终端命令创建脚本文件?


评论


谢谢,正是我所需要的。我没有root用户,也不想从源代码手动安装unzip。这也可以与bash一线应用程序一起使用,它通常可以正常工作(假设文件名中没有'''):unzip(){python -c“ from zipfile import PyZipFile; PyZipFile('''$ 1''')) 。提取所有()”; }

– mxmlnkn
19年2月11日,9:50



仅使用ZipFile类,而不使用PyZipFile,后者具有压缩Python库的某些特定支持

–拉斐尔·克拉斯(RafałKłys)
1月21日11:15

#6 楼

如果源目录和目标目录相同,则只需执行以下操作:

unzip filename.zip


评论


在Ubuntu 17.04上,-d require出于未知原因。

–水果
17年5月4日在7:14

#7 楼

我更喜欢bsdtar而不是unzip / zip。对于提取,它们非常相似:

bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five


但是对于压缩,bsdtar胜出。假设您有以下输入:

/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt


,并希望在zip文件中输入:

alfa/four.txt
bravo/four.txt


这是使用bsdtar很容易:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo


zip没有像unzip这样的-d选项,因此除非您先使用cd,否则您将无法实现以上要求。

评论


尽管我想将胜利归功于foss工具,但在不加压力时,bsdtar显然与诸如Blóðstokkinn一词中的至少一个这样的特殊字符的预兆不高。压缩时我什至没有检查。真可惜:/解压后没有问题。

– Vrakfall
19年5月6日14:53



#8 楼

以下是我认为有用的选项的详细说明:

Command: unzip -[option] zip-path.
               -d an optional directory to which to extract files  
               -l List archive files.
               -P password Use password to decrypt encrypted zipfile entries (if any).
               -t Test archive files with cyclic redundancy check.  
               -u Update the existing files.  
               -z archive comment


评论


同时解压-o以覆盖

–路易斯·洛佩兹(Luis Lopez)
5月19日6:20

#9 楼

请遵循以下说明:http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/

安装解压缩
因此,首先,如果未安装unzip,我们需要在系统上安装它。 unzip命令用于从
ZIP存档中提取文件。
运行以下命令以安装unzip
sudo apt-get install unzip

unzip语法
$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

现在请按照请执行以下步骤:
解压缩文件
选项1 –如果Zip文件位于终端所在的目录/文件夹中,并且我们要将其解压缩到当前的
工作目录中。 />使用以下命令可实现上述情况
sudo unzip zip_file_name.zip

如果zip文件受密码保护,则使用以下命令:
sudo ubzip -P zip_file_name.zip

请确保使用-P(大写字母P)而不是-p,因为这是不同的选项。
选项2 –如果该zip文件不在同一目录中,并且我们要提取/解压缩该文件,文件位于不同目录中。
使用以下命令实现上述情况
sudo unzip path/filename.zip -d another_path_or_same_path

如果不使用选项-d,则文件将被提取到当前工作目录中。
如果zip文件受密码保护,我们也可以使用-P
在Linux / Unix中使用tar命令
tar是Tape Archive的首字母缩写。 tar命令用于
在Linux / Unix中操作档案。系统管理员经常使用tar
命令将一堆文件或目录提取到高度压缩的存档中,在Linux / Unix系统中称为tarballtarbzip
gzip
tar语法
tar [OPTION...] [FILE]...


tar必需标志
tar {-r|-t|-c|-x|-u}
tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ]
[-Number] [-b Blocks] [-f Archive]

示例
创建tar归档文件压缩目录或单个文件
下面的终端命令将创建一个名为
.tar文件sample_dir.tar带有目录/home/codebind/sample_dir或当前工作目录中的
sample_dir
ripon@ripon:~$  tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar


这是这些标志(-cvf)的实际含义
-c, --create –创建新档案
-x, --extract, --get –从档案中提取文件
-f, --file ARCHIVE –使用档案文件或设备ARCHIVE
通过压缩目录或单个文件来创建tar.gztgz档案文件
下面的终端命令将在当前工作目录中创建一个名为
.tar.gzsample_dir.tar.gz文件,其目录为/home/codebind/sample_dir
sample_dir
请注意,我们在命令中添加了额外的标志-z。这是
标志-z实际上表示
-z, --gzip, --gunzip --ungzip –使用gzip压缩档案
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar.gz


下面的命令将创建一个.tgz文件。要注意的一个是
tar.gz和tgz都相似。
ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tgz

一次压缩多个目录或文件
说,例如,我们要压缩sample_dir目录,
java_test目录和abc.py文件转换为名为
sample_dir.tar.gz的tar文件。
运行以下命令以实现上述目标。
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.py
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
java_test/
java_test/HelloCV.java
abc.py
ripon@ripon:~$ ls
sample_dir java_test abc.py sample_dir.tar.gz


通过压缩目录或单个文件来创建.bzip2存档文件
ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

请注意,我们在命令中添加了额外的标志-f。这是
标志-f的实际含义
-f, --file ARCHIVE –使用存档文件或设备ARCHIVE

提取.tar存档文件
我们可以使用tar命令解压缩压缩文件。下面的
命令会将sample_dir.tar的内容提取到
当前目录中。
ripon@ripon:~$ tar -xvf sample_dir.tar
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 


以下命令将提取或解压缩指定目录中的文件
目录,在这种情况下为/home/codebind/dir_name
ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_name
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

我们在命令中添加了额外的标志-C。这是标志-C实际上是什么意思
-C, --directory DIR –更改为目录DIR



评论


另外,要检查是否已安装zip / unzip,请使用zip -v和unzip -v。如果已安装,它将返回类似Debian的2009年4月20日的UnZip 6.00。由Info-ZIP原创。 (加上几行其他信息。如果未安装,它将显示类似当前未安装程序“ zip”的信息。您可以通过键入以下内容进行安装:apt install zip。

– SherylHohman
18年10月10日在14:34

链接断开。

–随机人
9小时前