mac find -name *.png 不起作用

mac find -name *.png 不起作用

我正在嘗試遞歸搜尋以 .png 結尾的檔案名稱 我的 find 命令適用於 *.js,但不適用於 *.png。

~ >find dev -name *.png
~ >find dev -name bluerightarrow.png
dev/sandbox/ScheduleEditorTS/ScheduleEditorTS/img/bluerightarrow.png
~ >find dev -name *.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3-vsdoc.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3.js
... etc 

答案1

.png您的目前目錄中可能有一個文件,並且該文件*由您的 shell 擴展。

這是一個實用的解釋。建立一個名為 的目錄,然後在其中test建立另一個名為 的目錄,最後建立一個名為in 的檔案。然後進入.以下是執行此操作的命令:submyfile.txtsubcdtest

~ >mkdir -p test/sub
~ >touch test/sub/myfile.txt
~ >cd test

你可以運行find,你會得到預期的結果:

~/test >find sub -name *.txt
sub/myfile.txt

cause.txt現在建立一個名為in 的檔案test並再次運行find

~/test >touch cause.txt
~/test >find sub -name *.txt

這次什麼也沒找到,因為 shell 擴充了*而你的find指令變成了:

~/test >find sub -name cause.txt

中沒有cause.txt文件sub,因此沒有結果。

為了避免這個問題,你必須用反斜線轉義星號:

~/test >find sub -name \*.txt
sub/myfile.txt

相關內容