飞牛终端批量解压 RAR 到同名文件夹的 Shell 脚本
每个 RAR 解压到它自己的同名文件夹,避免多个压缩包内容混在一起。命令如下:
for f in *.rar; do
[ -e "$f" ] || continue
/usr/trim/bin/7zz x -y -aos -fromcharsetgbk "$f" -o"${f%.rar}"
done
参数说明
x:保留目录结构解压-y:自动确认所有提示-aos:跳过已存在的文件,不覆盖-fromcharsetgbk:按 GBK 处理中文文件名,飞牛 GUI 也用了这个参数-o"${f%.rar}":输出到去掉.rar后缀的同名文件夹,例如1985-Amour遥远的她[Korea].rar→ 解压到1985-Amour遥远的她[Korea]/
如果你想直接解压到当前目录
不建子文件夹,所有内容都释放到当前目录:
for f in *.rar; do
[ -e "$f" ] || continue
/usr/trim/bin/7zz x -y -aos -fromcharsetgbk "$f"
done
注意事项
- 如果当前目录没有
.rar文件,[ -e "$f" ] || continue会防止把*.rar当成真实文件名去解压。 - 如果还有大写
.RAR,可以先执行shopt -s nocaseglob,再运行上面的循环。 - 如果压缩包是分卷 RAR(如
xxx.part1.rar、xxx.part2.rar),不要直接遍历所有.rar,否则会重复解压或报错。分卷只需解压第一个文件,例如:/usr/trim/bin/7zz x -y -aos -fromcharsetgbk "xxx.part1.rar" -o"xxx" - 如果解压后文件名乱码,可以去掉
-fromcharsetgbk试试;如果本来正常,保留即可。
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 张国生


