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