ファイル拡張子を除く2つのディレクトリを比較します。

ファイル拡張子を除く2つのディレクトリを比較します。

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 コマンドを使用して両方のディレクトリのファイルを比較すると、目的のファイルのリストを取得できます。

関連情報