
我正在嘗試遞歸搜尋以 .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 的檔案。然後進入.以下是執行此操作的命令:sub
myfile.txt
sub
cd
test
~ >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