我正在尝试 7zip 并移动一些如下所示的文件:
./[1998] - This year's book.pdf
##注意括号、空格和撇号
我的脚本如下所示:
for file in `ls ./unprocessed/*.pdf`;
do
7z a -mx=0 -pMyPassword $file.7z $file ;
mv $file ./processed
done
(这实际上是在 Synology 的 linux 上,如果有区别的话。)
我尝试在“$file”周围添加引号,但这对两条主线都没有帮助。
我希望我可以在没有很多复杂的 grep 或 sed 类型的东西的情况下做到这一点。
我遇到的主要错误是它试图由于空格而拆分文件名,并且因为找不到“[1998]”等而感到害怕。
我认为一旦我解决了空格/时髦字符问题(?),7z 就可以了。
还有其他人遇到过这个吗?
感谢任何建议!
答案1
感谢访问 shellcheck.net 的提示,我对它不熟悉,关键问题是这一行:
`ls ./unprocessed/*.pdf`
这个更好:
for file in ./unprocessed/*.pdf
然后,在“$file”周围添加引号就可以了。