Answers:
您可以使用以下-p
选项将文本仅提取到标准输出:
unzip -p myarchive.zip path/to/zipped/file.txt >file.txt
这不会提取元数据(日期,权限等),而只会提取文件内容。这是为了不必以后移动文件而带来的便利而付出的代价。
或者,将归档文件挂载为目录,然后仅复制文件。使用AVFS:
mountavfs
cp -p ~/.avfs"$PWD/myarchive.zip#"/path/to/zipped/file.txt .
或带保险丝:
mkdir myarchive.d
fuse-zip myarchive.zip myarchive.d
cp -p myarchive.d/path/to/zipped/file.txt .
fusermount -u myarchive.d; rmdir myarchive.d
.jar
;如果文件的名称不同,则可能需要告诉AVFS使用其zip处理程序,例如~/.avfs$PWD/foo.apk#uzip/META-INF
。
-p
按原样提取文件(进行-c
文本转换)。
unzip -j "myarchive.zip" "in/archive/file.txt" -d "/path/to/unzip/to"
输入压缩文件的完整路径,而不仅仅是文件名。确保保留从zip文件中看到的结构。
这将提取单个文件file.txt
中myarchive.zip
到/path/to/unzip/to/file.txt
。
简单版本:
unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE
这将PATH_OF_FILE_INSIDE_ARCHIVE
在当前目录中重新创建,但仅提取指定的文件。
要列出Zip存档中的所有文件:
unzip -l ARCHIVE_NAME
在macOS上,默认情况下使用Info-Zip
首先列出文件以查找所需内容
unzip -l my.zip
然后提供要从存档中提取的文件列表
unzip my.zip annoying/path/to/file
与-p结合使用以进行标准输出
unzip -p my.zip annoying/path/to/file >./file
unzip zipfile.zip path/inside/zip/file.txt
它将使文件膨胀。
$ unzip -l ./../html.zip | grep wp-config
3328 07-22-2019 15:10 html/wp-config.php
2898 01-07-2019 23:30 html/wp-config-sample.php
$ unzip ./../html.zip html/wp-config.php
Archive: ./../html.zip
inflating: html/wp-config.php
$ ls -lrth
total 4.0K
drwxr-sr-x 2 apache apache 4.0K Jul 26 14:41 html
$ ls -lrth html/*
total 4.0K
-rw-rw-rw- 1 apache apache 3.3K Jul 22 15:10 wp-config.php
-d outpath
参数指定的文件插嘴说。
-j
避免压缩路径的争论