為什麼find有時會find .有時不是?

為什麼find有時會find .有時不是?
find -name "?"
find ~ -name "?"

為什麼其中一個指令找到.而另一個指令找不到?如何使第二個版本具有明確路徑,.在指定的目錄中找到該條目以及任何其他單字元檔案?

find (GNU findutils) 4.5.11萬一重要的話...

答案1

如果沒有starting pointfor find,它使用.(目前目錄)。事實上,這兩行將產生相同的輸出:

find -name "?"
find . -name "?"

能夠指定起點找到find目錄.,加入/.到您的起點,即:

find ~/. -name "?"

編輯:現在對於為什麼的問題,我們來比較一下這兩個指令:

find ~/. -name "?"
find ~ -name "?"

他們的輸出有兩點不同。首先,命令 with/.產生的結果在每行中都有一個額外的內容/.,正如預期的那樣。其次,這是OP的根本問題,是指令/.找到~/.偽目錄本身,但~指令卻找不到。這是因為~/.搜尋明確要求.進行搜尋。除非在命令列上列出find,否則find忽略...偽目錄。 (你能想像如果沒有的話嗎?)

請參閱man find以獲取更多資訊。

相關內容