Выполнение глубокого 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
и использовать это в цикле вместо поиска снова.