我试图遍历目录中的文件列表,加密它们,然后使用bash将它们移动到其他位置。以下是我到目前为止的情况:
for filename in /home/anthony/documents_preprocessed; do
gpg --encrypt --recipient anthony@mydomain.org $filename
mv /home/anthony/$filename /home/anthony/Documents
done
据我了解,这应该可行,但我对bash脚本编写起来相当新。当我运行它时,它永远不会加密,它只是将文件移动到文档目录。
谁能告诉我这样做的正确方法是什么?
谢谢!
答案 0 :(得分:3)
使用glob扩展目录中的所有文件:
for filename in /home/anthony/documents_preprocessed/*; do
gpg --encrypt --recipient anthony@mydomain.org "$filename"
mv "/home/anthony/$filename" /home/anthony/Documents
done
你可以而且应该首先shopt -s nullglob
,如果没有匹配的文件,这将使循环运行0而不是1次。
PS:shellcheck自动指出这样的常见问题。