【发布时间】:2020-07-16 04:56:39
【问题描述】:
我正在使用 7za 压缩和密码保护目录中的所有文件,然后重命名文件。 这是我的代码:
#!/bin/bash
rename 's/ /_/g' *
rename 's/_-_/_/g' *
Password_string=My_Password_String
a=1
for i in *;
do 7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off -p$Password_string -mhe=on $i.7z $i
new=$(printf "Summer_Vacat_%04d.7z" "$a")
mv -i -- "$i" "$new"
let a=a+1 #increment counter
done
我在包含我想要 7za 和密码保护的所有文件夹的目录中,mv 命令在压缩文件夹之前重命名文件夹。我想将 $i.7z 重命名为 Summer_Vacat_0000.7z,我在这里缺少什么?这只是该计划的第一阶段...
【问题讨论】:
-
为什么要重命名文件而不是直接用正确的名称创建它?
-
老实说,这是我拼凑起来的。您将如何改进?
-
错误你将目标文件名传递给
7za。只需传递$new而不是$i(显然您需要首先 创建文件名,然后然后 调用7za。顺便提一下,分号位于for行是不必要的。
标签: regex bash for-loop rename 7zip