Как я могу извлечь около 900 файлов 7z, которые все находятся в одной папке (все содержат только один файл), не делая это один за другим?
Я использую Ubuntu 10.10. Все файлы находятся в /home/username/folder1/folder2.
/home/username/folder1/folder2
7za -y x "*.7z"
Приведенный выше код работал для меня
for arc in *.7z do 7zwhatever "$arc" done
Использование параллельный - довольно удобный способ с полным индикатором прогресса бесплатно;)
ls *.7z | parallel -j+0 --eta '7z x {} >/dev/null'
for f in *.7z do 7zr e "$f" & done
Это извлечет все файлы .7z, если они имеют формат 7z, в текущий каталог, не дожидаясь завершения.
.7z
Возможно, ваш компьютер принадлежит.Вы были предупреждены!
7z x "*.7z" это сработало для меня в Ubuntu
7z x "*.7z"
Если вы хотите извлечь несколько архивов 7zip в папки с одинаковыми именами в Linux, вы можете использовать:
for archive in *.7z; do 7z x -o"`basename \"$archive\" .7z`" "$archive"; done
Например, если у вас есть два архива 7zip a.7z и b.7z,он создаст две папки a и b и распакует a.7z в папку a и b.7z в папку b.
a.7z
b.7z
a
b
Приведенная выше команда взята из этот ответ насуперпользователь от пользователя Vojtech .
Самый простой способ - unzip '*.zip'.
unzip '*.zip'
Убедитесь, что у вас есть отметки '.
'
в дополнение к использованию цикла for
вы также можете использовать find в сочетании с аргументом exec или xargs