我在一个目录中有一个 .zip 文件(它包含多个文件,例如,,,file1.txt
)file2.txt
。file3.txt
我如何将 zip 档案中的文件提取到同一个目录中?我如何创建从 zip 档案中提取的所有文件的列表?
提取的文件名应像这样打印在名为:file_list 的文件中:
file1.txt
file2.txt
file3.txt
filen.txt
我尝试了以下命令,假设我的.zip 文件名是“data.zip”。
unzip -qoj data.zip | unzip -ql data.zip > file_list
我曾经unzip -qoj data.zip
提取同一目录中的所有文件(quietly、overwrite、junk_path)。当我尝试-l
使用第一个 unzip 命令插入时,该命令不会提取当前目录中的文件,而只会列出文件。这就是为什么我必须在第一个管道之后再次使用 unzip。(如果我在这里犯了错误,请告诉我。)
我得到以下输出:
Length Date Time Name
-------- ---- ---- ----
0 12-21-09 14:25 data/
6148 12-21-09 14:25 data/.DS_Store
0 12-21-09 14:25 __MACOSX/
0 12-21-09 14:25 __MACOSX/data/
82 12-21-09 14:25 __MACOSX/data/._.DS_Store
82 12-11-09 13:59 data/file1.txt
120 12-11-09 13:59 data/file2.txt
166 12-11-09 13:59 data/file3.txt
-------- -------
6598 8 files
我如何从这个标准输出中仅提取file1.txt
, file2.txt
, ?file3.txt
是否可以使用 Linux 命令来执行此操作,或者我是否必须为此编写 perl 脚本?
答案1
unzip data.zip data/file1.txt data/file2.txt data/file3.txt