Se você está pronto para usar o CLI, o seguinte comando deve funcionar para você:
diff --brief -r backup/ documents/
Isso mostrará os arquivos exclusivos de cada pasta. Se você quiser, também pode ignorar os casos de nome de arquivo com o --ignore-file-name-case
Como exemplo:
ron@ron:~/test$ ls backup/
file1 file2 file3 file4 file5
ron@ron:~/test$ ls documents/
file4 file5 file6 file7 file8
ron@ron:~/test$ diff backup/ documents/
Only in backup/: file1
Only in backup/: file2
Only in backup/: file3
Only in documents/: file6
Only in documents/: file7
Only in documents/: file8
ron@ron:~/test$ diff backup/ documents/ | grep "Only in backup"
Only in backup/: file1
Only in backup/: file2
Only in backup/: file3
Além disso, se quiser denunciar apenas quando os arquivos forem diferentes (e não informar a 'diferença' real), você poderá usar a opção --brief
como em:
ron@ron:~/test$ cat backup/file5
one
ron@ron:~/test$ cat documents/file5
ron@ron:~/test$ diff --brief backup/ documents/
Only in backup/: file1
Only in backup/: file2
Only in backup/: file3
Files backup/file5 and documents/file5 differ
Only in documents/: file6
Only in documents/: file7
Only in documents/: file8
Existem várias ferramentas de comparação visual, como meld
, que podem fazer a mesma coisa. Você pode instalar meld
do repositório do universo:
sudo apt-get install meld
e use a opção "Comparação de diretórios". Selecione a pasta que você deseja comparar. Após a seleção, você pode compará-los lado-a-lado:
fdupes
é um programa excelente para encontrar os arquivos duplicados, mas não lista os arquivos não duplicados, que é o que você está procurando. No entanto, podemos listar os arquivos que não estão na saída fdupes
usando uma combinação de find
e grep
.
O exemplo a seguir lista os arquivos exclusivos de backup
.
ron@ron:~$ tree backup/ documents/
backup/
├── crontab
├── dir1
│ └── du.txt
├── lo.txt
├── ls.txt
├── lu.txt
└── notes.txt
documents/
├── du.txt
├── lo-renamed.txt
├── ls.txt
└── lu.txt
1 directory, 10 files
ron@ron:~$ fdupes -r backup/ documents/ > dup.txt
ron@ron:~$ find backup/ -type f | grep -Fxvf dup.txt
backup/crontab
backup/notes.txt