将目录中的所有 .rar 文件解压缩到同名文件夹中

将目录中的所有 .rar 文件解压缩到同名文件夹中

这是我正在尝试做的一个例子:

我有一个文件夹(称为“dir”),其中包含以下内容:

dir
|_sub1.rar
|_sub2.rar
|_sub3.rar

我将 cd ~/ 到 dir 并希望运行一个命令来提取所有 .rar 文件并将内容放入同名的文件夹中。 sub1.rar 应提取到 sub1,sub2.rar 应提取到 sub2,依此类推。

答案1

set -e
cd dir
for rar in ./*.rar
do
  [ -f "$rar" ] || continue
  dir=${rar%.rar}
  mkdir "$dir"
  (
     cd "./$dir"
     unrar x "../$rar"
  )
  # maybe rm "$rar"
done

这里没什么聪明的地方。假设您有一个带有执行提取选项unrar的命令。x只需对匹配 ./*.rar 的内容运行一个循环,确保它是一个文件,创建一个目录,然后使用子 shell 更改目录并提取它。

相关内容