Compare dois directiory excluindo as extensões de arquivos

1

Eu tenho dois diretórios: dir1 e dir2 No dir1 eu tenho arquivos como:

  • blacklist1.dat.bz2
  • blacklist2.dat.bz2
  • blacklist3.dat.bz2

e assim por diante.

No dir2 eu tenho arquivos criptografados como:

  • blacklist1.dat.bz2.enc

Gostaria de criptografar todos os arquivos que (comparando dir1 com dir2) não existem no dir2. Para criptografar um arquivo, uso o Openssl: - openssl enc -aes-256-cbc - em dir1 / file -out dir2 / file.enc -k Senha

Eu fiz assim, mas estou sentindo falta da condição do 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
    
por LucaP 20.12.2016 / 17:06

1 resposta

0

Eu recomendaria tentar usar algo como o rsync para determinar uma lista de arquivos ausentes / diferentes e, em seguida, usar essa listagem. No entanto, isso não funcionaria facilmente com suas necessidades.

Você também pode considerar o uso de localização para ajudar na possível recursão. Mesmo arquivos diff'ing dos 2 diretórios com alguns comandos sed e grep podem fornecer a lista de arquivos desejada.

    
por 21.12.2016 / 23:55