Выполнение глубокого unrar архива с помощью команды unrar в Linux

Я использую следующую команду, чтобы разархивировать все файлы в rar-acrhive к каталогу

unrar x -ep -y archive.rar folder

Он прекрасно работает и игнорирует структуру каталогов внутри архива, что мне и нужно.

Как сделать так, чтобы все файлы rar внутри архива были отменены, если они есть?

1 ответ

Решение

Бежать find folder -name "*.rar" -exec unrar ... "{}" folder \;

"{}" заменяется именем архива, который find найденный (unrar будет вызываться один раз за матч). \; говорит find конец команды execЮт.

замещать ... с параметрами, которые вы хотите.

Вы можете запустить его в цикле, пока не останется никаких архивов:

while $(find folder -name "*.rar") != "" ; do
    find folder -name "*.rar" -exec unrar ... "{}" folder \;
done

Это не очень эффективно, если ваши архивы огромны. Для огромных архивов, вы можете кэшировать результат первого find и использовать это в цикле вместо поиска снова.

Другие вопросы по тегам