7zip 和在 Bash 脚本中移动带有空格的文件

7zip 和在 Bash 脚本中移动带有空格的文件

我正在尝试 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”周围添加引号就可以了。

相关内容