Unrar ricorsivo di più cartelle


8

Ho diversi archivi RAR distribuiti su più directory ma tutti in una particolare cartella radice sul mio NAS basato su Debian. Qualcuno potrebbe aiutarmi a scrivere un semplice script che ricorre in modo ricorsivo in ogni cartella, azzerare il contenuto, tornare alla cartella principale e passare alla directory successiva? Così:

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

Quindi basta puntarlo sulla cartella principale "Foto" e si diffonde attraverso di essa senza riordinare tutto sulla strada ...

Ad esempio, struttura della directory:

*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

Risposte:



3

unrarha una ricorsione integrata usando l' -r Recurse subdirectoriesinterruttore.

unrar x -r <parent directory> Estrae i contenuti di tutte le sottodirectory <parent directory>in ciascuna sottodirectory, mantenendo qualsiasi struttura di directory esistente nei .rarfile. Utilizzare einvece di xse la struttura della directory è indesiderata.


Ciò estrarrà i file dagli archivi della sottodirectory in <parent directory>. Non posizionerà i file estratti nella sottodirectory accanto ai .rarfile. Quindi dipende dal risultato desiderato. L'OP non era specifico in questo caso. A volte la tua risposta mi è utile ma altre volte ho bisogno della findrisposta.
Cliff,

1

Se vuoi spostare le foto non ordinate in un'altra destinazione, inserisci la destinazione alla fine, in questo modo:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.