递归解压多个文件夹

递归解压多个文件夹

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

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

答案1

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

答案2

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

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

答案3

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

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

相关内容