Unrar rekursif dari beberapa folder

8

Saya memiliki beberapa arsip RAR yang tersebar di beberapa direktori tetapi semuanya di bawah folder root tertentu pada NAS berbasis Debian saya. Bisakah seseorang membantu saya menulis skrip sederhana yang secara rekursif akan masuk ke setiap folder, menghapus konten, kembali ke folder induk dan pindah ke direktori berikutnya? Begitu:

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

Jadi arahkan saja ke root folder "Foto" dan blitz melalui itu tidak mempersiapkan segalanya di jalan ...

Misalnya, struktur direktori:

*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
Touff
sumber

Jawaban:

16
find Photos/ -name '*.rar' -execdir unrar e {} \; 
Ignacio Vazquez-Abrams
sumber
Cemerlang, tidak tahu itu sangat mudah! Terima kasih banyak!
Touff
3

unrarmemiliki rekursi bawaan menggunakan -r Recurse subdirectoriessakelar.

unrar x -r <parent directory> Ekstrak konten dari semua subdirektori <parent directory>ke dalam setiap subdirektori, menjaga struktur direktori yang ada dalam .rarfile. Gunakan ealih-alih xjika struktur direktori tidak diinginkan.

hmj6jmh
sumber
Ini akan mengekstrak file dari arsip subdirektori ke <parent directory>. Itu tidak akan menempatkan file yang diekstraksi ke dalam subdirektori di sebelah .rarfile. Jadi itu tergantung pada hasil apa yang diinginkan. OP tidak spesifik dalam kasus ini. Terkadang jawaban Anda bermanfaat bagi saya, tetapi di lain waktu saya membutuhkan findjawabannya.
Cliff
1

Jika Anda ingin memindahkan foto yang belum dihapus ke tujuan lain, cukup masukkan tujuan pada akhirnya, seperti ini:

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

Dennis
sumber