比较两个目录,不包括文件扩展名

比较两个目录,不包括文件扩展名

我有两个目录: 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 命令比较两个目录中的文件也可以为您提供所需的文件列表。

相关内容