-3

我是在 shell 中工作的新手,可以使用 unrar 命令提取单个存档,但我希望做的更多。让我解释。

前任:

/ParentFolder/ChildFolder1/xyz.rar

/ParentFolder/ChildFolder2/abc.rar

/ParentFolder/ChildFolder3/rty.rar

/ParentFolder/ChildFolder4/wqe.rar

每个子文件夹都有不同的名称,每个文件夹包含不同命名的档案。我想构建一个脚本,将提取每个子文件夹中的档案,并将提取的文件重命名为与文件夹相同的名称。

奖励:每个子文件夹都有归档,如下所示

archivename.r01

archivename.r02

archivename.rar

如果可以在提取后删除整个存档结构,那将是惊人的。

希望我解释得足够好。提前致谢!

4

1 回答 1

0
find /ParentFolder -name "*.rar" -exec unrar '{}' \;

查找目录结构中的所有存档文件并解压缩。

find /ParentFolder ! -name "*.rar" | awk -F \/ '{ split($4,fle,".");system("mv "$0" "$2"/"$3"/"$3"."fle[2]) }'

假设目录结构中没有其他文件,未归档的文件将不是具有 rar 扩展名的文件,因此查找所有没有 rar 作为扩展名的文件并通过 awk 管道结果,使用系统函数重命名文件与MV。

find /ParentFolder -name "*.rar" -exec rm -f '{}' \;

最后对所有 rar 文件运行 find 命令并运行 rm -f 命令删除它们。

于 2017-07-23T20:05:11.260 回答