8

У меня есть несколько архивов RAR, распределенных по нескольким каталогам, но все они находятся в определенной корневой папке на моем NAS-сервере на базе Debian. Может ли кто-нибудь помочь мне написать простой сценарий, который будет рекурсивно входить в каждую папку, разархивировать содержимое, возвращаться в родительскую папку и переходить в следующий каталог? Так:

cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...

Так что просто наведите его на корневую папку "Фото", и она будет пролетать сквозь нее, все в пути ...

Например, структура каталогов:

*Photos:
 -Summer
  --Italy
   ---Italy.rar
   ---Italy.r01
   ---Italy.r02
  --France
   ---France.rar
   ---France.r01
   ---France.r02
 -Winter
  --Siberia
   ---Siberia.rar
   ---Siberia.r01
   ---Siberia.r02
  --Canada
   ---Snow.rar
   ---Snow.r01
   ---Snow.r02

3 ответа3

14
find Photos/ -name '*.rar' -execdir unrar e {} \; 
3

unrar имеет встроенную рекурсию с помощью ключа -r Recurse subdirectories .

unrar x -r <parent directory> Извлекает содержимое всех подкаталогов в <parent directory> в каждый подкаталог, сохраняя любую структуру каталогов, существующую в файлах .rar . Используйте e вместо x если структура каталогов нежелательна.

1

Если вы хотите переместить фотографии, сделанные не по назначению, в другое место назначения, просто введите место назначения в конце, например:

find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;

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