patch & diff 單一檔案 # 建立更新檔 diff -uN old.code new.code > patch.file # 套用更新檔 patch < patch.file # 回復更新前 patch -RE < patch.file 連續多個檔案 # 建立更新檔 diff -rupN olddir newdir > patch.dir # 套用更新檔 patch -p1 < patch.dir # 回復更新前 patch -RE -p1 < patch.dir 找出內容不一致的檔案 # 目錄一: asterisk_orig/ # 目錄二: asterisk_patched/ cd asterisk_orig; find ./ -name "*.c" -exec md5sum -b {} \; > ../asterisk_orig.md5; cd ../ cd asterisk_patched; find ./ -name "*.c" -exec md5sum -b {} \; > ../asterisk_patched.md5; cd ../ diff asterisk_orig.md5 asterisk_patched.md5 273c273 < 894a111d1efa5901471820e203503039 *./channels/chan_sip.c --- > 00116baac23473049b5801c9287fb4be *./channels/chan_sip.c 注意:前提是 asterisk_orig 與 asterisk_patched 目錄架構及檔案名稱必須完全一樣,這通常用來找出 asterisk_patched 目錄內被更新過了哪些 .c 檔案。 diff 與 curl 的應用 diff <(curl http://somesite/file1) <(curl http://somesite/file2) 比對兩個目錄 diff -q directory-1/ directory-2/ diff -qr directory-1/ directory-2/ Tutorials Understanding of diff output