【问题标题】:Archive Extraction Script档案提取脚本
【发布时间】:2017-12-29 08:16:09
【问题描述】:

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

例如:

/ParentFolder/ChildFolder1/xyz.rar

/ParentFolder/ChildFolder2/abc.rar

/ParentFolder/ChildFolder3/rty.rar

/ParentFolder/ChildFolder4/wqe.rar

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

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

archivename.r01

archivename.r02

archivename.rar

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

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

【问题讨论】:

  • 您应该先尝试一下并解释您遇到的问题,否则这个问题听起来像是请求某人进行免费脚本开发。
  • 您的“输入”示例非常好(即/ParentFolder/ChildFolder1/xyz.rar .....)。编辑您的 Q 以显示您想要的最终输出,然后我们不会猜测您的意思。祝你好运。

标签: bash shell archive rar unrar


【解决方案1】:
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 命令删除它们。

【讨论】:

  • 非常感谢!!你的第一个我只需要在 unrar 旁边添加一个“x”就可以了!!!!
猜你喜欢
  • 2023-03-14
  • 2015-12-21
  • 2021-06-04
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
  • 2011-08-04
相关资源
最近更新 更多