Můžete také použít find s -exec pro volání diff:
cd /destination/dir/1
find . -name *.xml -exec diff {} /destination/dir/2/{} \;
Absence komplementárního -- include ... .
 Můžeme udělat jedno řešení, soubor vyloučení se všemi soubory, ale to, co chceme zahrnout. Takže vytvoříme file1 s najít všechny soubory, které nemají přípony, které chceme zahrnout, sed zachytit název souboru a je jen :
diff --exclude-from=file1  PATH1/ PATH2/
Například:
find  PATH1/ -type f | grep --text -vP "php$|html$" | sed 's/.*\///' | sort -u > file1 
diff PATH1/ PATH2/ -rq -X file1 
Převzato z (verze) manuálové stránky:
-x PAT  --exclude=PAT
  Exclude files that match PAT.
-X FILE    --exclude-from=FILE
  Exclude files that match any pattern in FILE.
 Takže to vypadá jako -x při nahlášení přijímá pouze jeden vzor, ale pokud vložíte všechny vzory, které chcete vyloučit, do souboru (pravděpodobně jeden na řádek), můžete použít druhý příznak takto:
$ diff /destination/dir/1 /destination/dir/2 -r -X exclude.pats
kde exclude.pats je:
*.jpg
*.JPG
*.xml
*.XML
*.png
*.gif
 Můžete zadat -x více než jednou.
diff -x '*.foo' -x '*.bar' -x '*.baz' /destination/dir/1 /destination/dir/2
 Ze sekce Porovnání adresářů info diff (v mém systému musím provést info -f /usr/share/info/diff.info.gz ):
Chcete-li některé soubory při porovnávání adresářů ignorovat, použijte volbu '-xPATTERN' nebo '--exclude=PATTERN'. Tato volba ignoruje všechny soubory nebo podadresáře, jejichž základní názvy odpovídají vzoru shellu PATTERN. Na rozdíl od shellu se tečka na začátku základny názvu souboru shoduje se zástupným znakem na začátku vzoru. PATTERN byste měli uzavřít do uvozovek, aby jej shell nerozšiřoval. Například možnost -x '*.[ao]' ignoruje všechny soubory, jejichž název končí na '.a' nebo '.o'.
Tato možnost se shromažďuje, pokud ji zadáte více než jednou. Například pomocí možností -x 'RCS' -x '*,v' ignoruje jakýkoli soubor nebo podadresář, jehož základní název je „RCS“ nebo končí „,v“.