这是我正在尝试做的一个例子:
我有一个文件夹(称为“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 更改目录并提取它。