几个文件夹的递归解压缩

Tou*_*uff 12 script nas rar shell-script

我有几个 RAR 档案分布在多个目录中,但都在我基于 Debian 的 NAS 上的特定根文件夹下。有人可以帮我写一个简单的脚本,它会递归地进入每个文件夹,解压缩内容,回到父文件夹并移动到下一个目录吗?所以:

cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...
Run Code Online (Sandbox Code Playgroud)

所以只需将它指向根文件夹“照片”,它就会快速浏览它,在途中解开所有东西......

例如,目录结构:

*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
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 23

find Photos/ -name '*.rar' -execdir unrar e {} \; 
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您想将解压后的照片移动到另一个目的地,只需在最后输入目的地即可,如下所示:

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


hmj*_*jmh 5

unrar具有使用-r Recurse subdirectories开关的内置递归。

unrar x -r <parent directory> 将所有子目录下的内容提取<parent directory>到每个子目录中,保留.rar文件中存在的任何目录结构。如果不需要目录结构,请使用e代替x