Talvez você possa usar rsync como um truque para fazer isso.
rsync --dry-run --delete --recursive --verbose dir1/ dir2
ou, versão curta
rsync -nrv --delete dir1/ dir2
NÃO ESQUEÇA O --dry-run OR -n OPTION, ou o diretório de destino (dir2) será idêntico ao diretório de origem (dir1).
Isso eliminará as diferenças de dois diretórios, incluindo nomes de diretórios e nomes de arquivos e de arquivos. (e você pode até comparar dois diretórios em duas máquinas diferentes)
sending incremental file list
deleting dir3-1/ # this directory (name) doesn't exist in source directory
deleting file2.txt # this file (name) doesn't exist in source directory
file1.txt # this file is different (content) from the source files
dir3/ # this directory (name) doesn't exist in destination directory
sent 95 bytes received 21 bytes 232.00 bytes/sec
total size is 4 speedup is 0.03 (DRY RUN)