Como resultado das respostas acima, criei o seguinte pequeno script que queria compartilhar:
# vi /bin/checkbackup
#!/bin/bash
echo "1/5: Checking source files..."
find "$1" -type f -printf "%P %s\n" | sort > ~/.checkbackup_files.tmp
echo "2/5: Comparing destination files..."
find "$2" -type f -printf "%P %s\n" | sort | diff - ~/.checkbackup_files.tmp
echo "3/5: Checking source directories..."
find "$1" -type d -printf "%P\n" | sort > ~/.checkbackup_dirs.tmp
echo "4/5: Comparing destination directories..."
find "$2" -type d -printf "%P\n" | sort | diff - ~/.checkbackup_dirs.tmp
echo "5/5: Cleaning up"
rm -f ~/.checkbackup_files.tmp
rm -f ~/.checkbackup_dirs.tmp
# chmod 755 /bin/checkbackup
Uso:
$ checkbackup /path/to/dir1 /path/to/dir2
Nenhum relatório significa que a estrutura e os nomes das pastas são os mesmos, e que os arquivos têm os mesmos tamanhos e os mesmos nomes, sem qualquer falta.
Testado em árvores de diretórios de 1,5 TB em discos SATA2 5400rpm, ele termina em aproximadamente 5 minutos.
Este script não está terminado, há, sem dúvida, outros, melhores, mais rápidos e mais detalhados, com mais ferramentas de verificação por aí. Mas eu pensei que iria compartilhá-lo de qualquer maneira.