dir1とdir2という2つのディレクトリがあります。 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 パスワード
私はこれが好きですが、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 コマンドを使用して両方のディレクトリのファイルを比較すると、目的のファイルのリストを取得できます。