纠正错误 添加实例

unzip

解压缩zip文件

补充说明

unzip命令的全称是unzip compressed files,意思是解压缩压缩文件。unzip命令可以从ZIP归档文件中提取文件,也可以列出或测试归档文件的内容。unzip命令还支持一些选项,用来控制解压缩的过程和结果。

适用的Linux版本

unzip命令在大多数Linux发行版中都是可用的,但并不是默认安装的。你可以使用你的发行版的包管理器来安装它。

$ sudo apt install unzip
$ sudo yum install unzip

命令语法

unzip [选项] [ZIP文件] [文件列表] [-x 排除文件列表] [-d 解压目录]

选项

选项 说明
-c 将提取的文件内容输出到标准输出,不改变原始文件。
-f 只更新已经存在的文件,不提取新的文件。
-j 不重建目录结构,将所有文件都提取到当前目录。
-l 列出ZIP文件的内容,不提取文件。
-n 不覆盖已经存在的文件,跳过提取。
-o 覆盖已经存在的文件,不询问。
-p 将提取的文件内容输出到标准输出,不改变原始文件,同时不显示任何信息。
-q 安静模式,不显示任何信息。
-t 测试ZIP文件的完整性,不提取文件。
-u 更新已经存在的文件,并提取新的文件。
-v 详细模式,显示更多信息。
-x 排除指定的文件或目录,不提取。
-z 显示ZIP文件的注释,不提取文件。
-P 指定ZIP文件的密码,用来解密加密的文件。
-d 指定解压缩的目标目录,如果不存在,则会自动创建。

示例

解压缩一个ZIP文件到当前目录

假设你有一个名为test.zip的ZIP文件,你想要将它解压缩到当前目录,你可以使用以下命令:

$ unzip test.zip

这个命令会将test.zip文件中的所有文件和目录都提取到当前目录,并显示提取的过程和结果。

解压缩一个ZIP文件到指定目录

假设你有一个名为test.zip的ZIP文件,你想要将它解压缩到一个名为output的目录,你可以使用以下命令:

$ unzip test.zip -d output

这个命令会将test.zip文件中的所有文件和目录都提取到output目录,并显示提取的过程和结果。如果output目录不存在,则会自动创建。

解压缩一个ZIP文件中的部分文件

假设你有一个名为test.zip的ZIP文件,你只想要提取其中的file1.txt和file2.txt文件,你可以使用以下命令:

$ unzip test.zip file1.txt file2.txt

这个命令会将test.zip文件中的file1.txt和file2.txt文件提取到当前目录,并显示提取的过程和结果。

解压缩一个ZIP文件中的部分文件,排除某些文件

假设你有一个名为test.zip的ZIP文件,你只想要提取其中的以.txt结尾的文件,但是排除file3.txt和file4.txt文件,你可以使用以下命令:

$ unzip test.zip "*.txt" -x file3.txt file4.txt

这个命令会将test.zip文件中的所有以.txt结尾的文件,除了file3.txt和file4.txt文件,提取到当前目录,并显示提取的过程和结果。

解压缩一个ZIP文件,不重建目录结构

假设你有一个名为test.zip的ZIP文件,它包含了多个目录和文件,你想要将它解压缩到当前目录,但是不保留原来的目录结构,你可以使用以下命令:

$ unzip test.zip -j

这个命令会将test.zip文件中的所有文件,不管它们在哪个目录,都提取到当前目录,并显示提取的过程和结果。

解压缩一个ZIP文件,只更新已经存在的文件

假设你有一个名为test.zip的ZIP文件,你已经解压缩过它,但是后来ZIP文件有了更新,你想要将它解压缩到当前目录,但是只更新已经存在的文件,不提取新的文件,你可以使用以下命令:

$ unzip test.zip -f

这个命令会将test.zip文件中的所有文件,如果在当前目录已经存在,且ZIP文件中的版本比较新,则更新它,否则跳过它,并显示提取的过程和结果。

解压缩一个ZIP文件,更新已经存在的文件,并提取新的文件

假设你有一个名为test.zip的ZIP文件,你已经解压缩过它,但是后来ZIP文件有了更新,你想要将它解压缩到当前目录,更新已经存在的文件,并提取新的文件,你可以使用以下命令:

$ unzip test.zip -u

这个命令会将test.zip文件中的所有文件,如果在当前目录已经存在,且ZIP文件中的版本比较新,则更新它,否则提取它,并显示提取的过程和结果。

解压缩一个ZIP文件,覆盖已经存在的文件,不询问

假设你有一个名为test.zip的ZIP文件,你想要将它解压缩到当前目录,覆盖已经存在的文件,不询问你是否要覆盖,你可以使用以下命令:

$ unzip test.zip -o

这个命令会将test.zip文件中的所有文件,如果在当前目录已经存在,则覆盖它,不显示任何提示,并显示提取的过程和结果。

解压缩一个ZIP文件,不覆盖已经存在的文件,跳过提取

假设你有一个名为test.zip的ZIP文件,你想要将它解压缩到当前目录,不覆盖已经存在的文件,跳过提取,你可以使用以下命令:

$ unzip test.zip -n

这个命令会将test.zip文件中的所有文件,如果在当前目录已经存在,则跳过提取,不显示任何提示,并显示提取的过程和结果。

解压缩一个ZIP文件,将提取的文件内容输出到标准输出

假设你有一个名为test.zip的ZIP文件,你想要将它解压缩,但是不改变原始文件,只是将提取的文件内容输出到标准输出,你可以使用以下命令:

$ unzip test.zip -c

这个命令会将test.zip文件中的所有文件的内容输出到标准输出,并显示提取的过程和结果。

解压缩一个ZIP文件,将提取的文件内容输出到标准输出,不显示任何信息

假设你有一个名为test.zip的ZIP文件,你想要将它解压缩,但是不改变原始文件,只是将提取的文件内容输出到标准输出,同时不显示任何信息,你可以使用以下命令:

$ unzip test.zip -p

这个命令会将test.zip文件中的所有文件的内容输出到标准输出,不显示任何提取的过程和结果。

解压缩一个ZIP文件,列出ZIP文件的内容,不提取文件

假设你有一个名为test.zip的ZIP文件,你想要查看它的内容,但是不提取文件,你可以使用以下命令:

$ unzip test.zip -l

这个命令会列出test.zip文件中的所有文件和目录的信息,包括大小,日期,时间,压缩比等,并显示总计的信息。

解压缩一个ZIP文件,测试ZIP文件的完整性,不提取文件

假设你有一个名为test.zip的ZIP文件,你想要检查它是否有损坏或错误,但是不提取文件,你可以使用以下命令:

$ unzip test.zip -t

这个命令会测试test.zip文件中的所有文件和目录的完整性,如果有错误或警告,则显示出来,并显示总计的信息。

解压缩一个ZIP文件,显示ZIP文件的注释,不提取文件

假设你有一个名为test.zip的ZIP文件,它包含了一些注释,你想要查看它的注释,但是不提取文件,你可以使用以下命令:

$ unzip test.zip -z

这个命令会显示test.zip文件的注释,如果有的话,并显示总计的信息。

解压缩一个加密的ZIP文件,指定密码

假设你有一个名为test.zip的ZIP文件,它是加密的,你知道它的密码,你想要将它解压缩到当前目录,你可以使用以下命令:

$ unzip test.zip -P 密码

这个命令会使用指定的密码来解密test.zip文件中的加密文件,并将它们提取到当前目录,并显示提取的过程和结果。

注意事项