在 Linux 中解压 .zip 文件

在 Linux 中解压 .zip 文件

我在一个目录中有一个 .zip 文件(它包含多个文件,例如,,,file1.txtfile2.txtfile3.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

相关内容