Isso pode ser feito facilmente com diff
. Por exemplo:
$ ls -l foo/
total 2132
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash2
-rwxr-xr-x 1 terdon terdon 118280 Nov 18 13:13 ls
$ ls -l bar/
total 1124
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:14 bash
-rwxr-xr-x 1 terdon terdon 118280 Nov 18 13:14 ls
$ diff bar/ foo/
Only in foo/: bash2
No exemplo acima, os diretórios foo/
e bar/
contêm arquivos binários e bash2
está apenas em foo/
.
Então, você pode executar algo simples como:
$ diff bar/ foo/ && echo "The directories' contents are identical"
Isso mostrará os diferentes arquivos, se houver algum, ou imprimirá o conteúdo "Os diretórios" são idênticos "se forem. Para comparar subdiretórios e quaisquer arquivos que eles possam conter, use diff -r
. Combine-o com -q
para suprimir a saída de arquivos de texto.