Рекурсивний unrar з декількох папок


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

unrarмає вбудовану рекурсію за допомогою -r Recurse subdirectoriesперемикача.

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


Це витягне файли з архівів підкаталогу в <parent directory>. Він не розмістить витягнуті файли у підкаталозі поруч із .rarфайлами. Тож залежить від того, який результат бажаний. ОП в цьому випадку не була специфічною. Іноді ваша відповідь мені корисна, але інший раз мені потрібна findвідповідь.
Кліф

1

Якщо ви хочете перенести фотографії unrar'd до іншого пункту призначення, просто введіть його в кінцевому підсумку, наприклад:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.