
答案1
您所經歷的行為是設計使然的。我不認為你能得到你想要的,除非你允許使用diff
.從你的評論來看:
當我閱讀“遞歸”時,我認為該過程不會在第一級停止。
它不會因為第一層而停止。注意遞歸的含義:
使用函數從自己的程式碼中呼叫自己
(來源:這裡;強調我的)
foo
假設您在 和 中diff1
都有一個公共子目錄diff2
。遞歸意味著您的原始命令diff -r diff1 diff2
在某個時刻調用
diff -r diff1/foo diff2/foo
好的,實際上,這很可能是透過在單一進程中呼叫自身的子程式來完成的(但我猜實際呼叫diff
可執行檔的實作是可能的)。從邏輯上來說還是這樣。
你有diff1/folder
但沒有diff2/folder
。你如何打電話diff
來比較這些?換句話說,應該<unknown_name>
是什麼,以便您從下面的表格中獲得所需的輸出?
diff -r diff1/folder diff2/<unknown_name>
沒有<unknown_name>
合適的。遞歸diff
不能下降到folder
而不變成遞歸ls
或之類的東西find
。遞歸ls
或find
不是它的工作。
在您從中學習之後,您仍然可以diff1/folder
使用ls -R
or進行查詢find
(預設遞歸)。diff
Only in diff1: folder