1

Предположим, вы начали с несжатого каталога A со следующей структурой:

$ tree A
A
└── inner_dir
    ├── file1.txt
    └── file2.txt

1 directory, 2 files

Теперь предположим, что вы получили два zip-файла 1.zip и 2.zip полученные из A 1.zip содержит только file1.txt , а 2.zip содержит только file2.txt:

# -l flag simply lists file contents

$ unzip -l 1.zip 
Archive:  1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2017-09-30 21:49   A/
        0  2017-09-30 22:27   A/inner_dir/
        0  2017-09-30 21:49   A/inner_dir/file1.txt
---------                     -------
        0                     3 files

$ unzip -l 2.zip 
Archive:  2.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2017-09-30 21:49   A/
        0  2017-09-30 22:27   A/inner_dir/
        0  2017-09-30 22:27   A/inner_dir/file2.txt
---------                     -------
        0                     3 files

Какую команду можно использовать для программного восстановления исходного разархивированного каталога A из комбинации 1.zip и 2.zip?

Контекст: при экспорте большого каталога из Google Диска содержимое разделяется на набор из 2 или более zip-файлов. Каждый zip-файл содержит некоторое подмножество файлов, которые, взятые вместе, составляют исходный каталог. Какие файлы содержат, в котором zip выглядит более или менее случайным. Я ищу решение, которое обобщает n> 1 zip-файлов, а не только особый случай ровно 2 файлов.

1 ответ1

1

Переместите набор файлов, которые вы хотите распаковать, в специальный каталог, а затем используйте unzip:

$ unzip '*.zip' -d combined

Archive:  1.zip
   creating: combined/A/
   creating: combined/A/inner_dir/
 extracting: combined/A/inner_dir/file1.txt  

Archive:  2.zip
 extracting: combined/A/inner_dir/file2.txt  

2 archives were successfully processed.

Проверьте:

$ tree combined
combined
└── A
    └── inner_dir
        ├── file1.txt
        └── file2.txt

2 directories, 2 files

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