几个文件夹的递归解压缩


8

我有多个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

Answers:



3

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

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


这会将文件从子目录存档提取到中<parent directory>。不会将提取的文件放在文件旁边的子目录中.rar。因此,这取决于所需的结果。在这种情况下,OP并不是特定的。有时您的答案对我有用,而其他时候我需要find答案。
悬崖

1

如果要将未整理的照片移动到另一个目的地,只需在最后输入目的地,如下所示:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.