1

У меня есть файл .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 для извлечения всех файлов в одном каталоге (спокойно, перезаписать, 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 ответ1

1
unzip data.zip data/file1.txt data/file2.txt data/file3.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .