Anda juga dapat menggunakan find dengan -exec untuk memanggil diff:
cd /destination/dir/1
find . -name *.xml -exec diff {} /destination/dir/2/{} \;
Kurangnya pelengkap --termasuk ... .
Kami dapat melakukan satu solusi, file pengecualian dengan semua file tetapi yang ingin kami sertakan. Jadi kami membuat file1
dengan menemukan semua file yang tidak memiliki ekstensi yang ingin kita sertakan, sed
menangkap nama file dan hanya :
diff --exclude-from=file1 PATH1/ PATH2/
Misalnya:
find PATH1/ -type f | grep --text -vP "php$|html$" | sed 's/.*\///' | sort -u > file1
diff PATH1/ PATH2/ -rq -X file1
Diambil dari ( versi dari) halaman manual:
-x PAT --exclude=PAT
Exclude files that match PAT.
-X FILE --exclude-from=FILE
Exclude files that match any pattern in FILE.
Jadi sepertinya -x
hanya menerima satu pola saat Anda melaporkan tetapi jika Anda meletakkan semua pola yang ingin Anda kecualikan dalam file (mungkin satu pola per baris), Anda dapat menggunakan tanda kedua seperti ini:
$ diff /destination/dir/1 /destination/dir/2 -r -X exclude.pats
di mana dikecualikan.pats adalah:
*.jpg
*.JPG
*.xml
*.XML
*.png
*.gif
Anda dapat menentukan -x
lebih dari sekali.
diff -x '*.foo' -x '*.bar' -x '*.baz' /destination/dir/1 /destination/dir/2
Dari bagian Membandingkan Direktori info diff
(di sistem saya, saya harus melakukan info -f /usr/share/info/diff.info.gz
):
Untuk mengabaikan beberapa file saat membandingkan direktori, gunakan opsi '-xPATTERN' atau '--exclude=PATTERN'. Opsi ini mengabaikan file atau subdirektori apa pun yang nama dasarnya cocok dengan POLA pola shell. Tidak seperti di shell, titik di awal basis nama file cocok dengan wildcard di awal pola. Anda harus menyertakan PATTERN dalam tanda kutip sehingga shell tidak mengembangkannya. Misalnya, opsi -x '*.[ao]' mengabaikan file apa pun yang namanya diakhiri dengan '.a' atau '.o'.
Opsi ini terakumulasi jika Anda menentukannya lebih dari sekali. Misalnya, menggunakan opsi -x 'RCS' -x '*,v' mengabaikan file atau subdirektori apa pun yang nama dasarnya adalah 'RCS' atau diakhiri dengan ',v'.