Назад | Перейти на главную страницу

Пакетная распаковка файлов .zip с помощью 7z

Я загрузил большое количество файлов .zip, и мне нужно извлечь их с помощью 7z (p7zip) в командной строке. 7z x filename0001.zip успешно, но 7z x *.zip возвращает ошибку «Нет файлов для обработки».

Как я могу распаковать файлы сразу, а не по одному?

for zip in *.zip; do
    7z x "$zip"
done

Решение:

ls -1 *.zip | xargs -L 1 7z x

Пояснение:

  1. ls -1 *.zip выводит список zip-файлов из одной колонки в стандартный вывод (ls dash-one, не ls dash-ell)
  2. xargs -L 1 берет каждое возвращенное имя файла и передает его 7z x в качестве параметра.