2009-04-22 66 views
42

我有兩個目錄包含源文件到一個項目,我很少通過文檔繼承。我如何比較兩個目錄以查看差異。謝謝。如何比較Linux中的兩個源代碼樹?

+0

有了上面提供的所有正確答案,如果您需要任何視頻幫助,我在搜索答案中找到了這個有用的視頻https://www.youtube.com/watch?v=TcJkLV1EeUU – 2014-11-19 13:52:09

回答

33

您可以嘗試MELD: http://meld.sourceforge.net/ 這是一場精彩的視覺差異的工具;-)

+0

非常感謝,我發現了Meld在發佈我的問題後遲到了,它幾乎是我想要的。如果我不需要將代碼下載到本地計算機,而是將其作爲遠程服務器上的代碼,並且(不幸)沒有像CVS或Subversion那樣簽入,那將會很好。 – freakwincy 2009-04-22 12:25:00

+0

Meld可以讓你看到樹結構中的差異以及文件中的逐行比較。另外,您可以選擇性地將更改應用到一個目錄中。華麗的! – 18446744073709551615 2012-05-11 06:13:30

+0

我已經使用過Meld進行文件比較了,但是我沒有意識到這對於樹對比來說非常棒。 – 2013-04-08 11:55:00

5

您可以在外殼使用diff命令。或安裝喜歡kdiff3

+2

KDiff3 +1。作品比較目錄(和子目錄等) – 2009-04-22 12:03:52

24
diff -u -r dirA dirB 

工具會告訴你在迪拉和DIRB

47

文件之間統一的遞歸差異試試這個:

diff -Naur dir1/ dir2/ 
  • -u選項使輸出 稍微容易閱讀。
  • 通過所有 子目錄
  • -N-a選項-r選項遞歸真的 只有當你想創建 補丁文件必要。
1

diff命令比較目錄一直告訴我,我沒有差異,當我知道有差異。

而不是直接使用差異的,我用MD5SUMS的排序列表,然後比較這些文件與差異:

find /path1/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path1.log 
find /path2/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path2.log 
gvimdiff path1.log path2.log 

如果路徑的開始部分引起頭痛,然後改變它。選擇路徑1窗口,鍵入:

:%s|path1|path2|g 

這將取代PATH1的所有實例與路徑2中的第一個文件,現在你的差異應該只示區別。