我有两个目录: dir1 和 dir2 在 dir1 中我有如下文件:
- 黑名单1.dat.bz2
- 黑名单2.dat.bz2
- 黑名单3.dat.bz2
等等。
在 dir2 中,我加密了如下文件:
- blacklist1.dat.bz2.enc
我想加密 dir2 上不存在的所有文件(比较 dir1 与 dir2)。为了加密文件,我使用 Openssl: - openssl enc -aes-256-cbc -in dir1/file -out dir2/file.enc -k Password
我确实喜欢这个,但我缺少 if 的条件
for i in /dir1/*; do
name=$(basename "$i")
test=$name.enc
if [ **<$test doesn't exist on dir2>** ]; then
openssl enc -aes-256-cbc -in dir1/name -out dir2/name.enc -k Password
fi
done
答案1
我建议尝试使用 rsync 之类的东西来确定丢失/不同的文件列表,然后使用该列表。但是,这并不容易满足您的需求。
您可能还需要考虑使用 find 来帮助可能的递归。即使使用一些 sed 和 grep 命令比较两个目录中的文件也可以为您提供所需的文件列表。