파일 확장자를 제외한 두 디렉터리를 비교합니다.

파일 확장자를 제외한 두 디렉터리를 비교합니다.

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 비밀번호

나는 이것을 좋아하지만 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 명령을 사용하여 두 디렉터리의 파일을 비교하면 원하는 파일 목록을 얻을 수 있습니다.

관련 정보