У меня есть файл .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 для этого?