linux – 使用find -name命令的通配符和雙引號


轉至:https://www.icode9.com/content-3-209958.html

雙引號(和單引號)是否抑制了通配符擴展?如果是這樣,那么為什么以下呢?

find -name  "d*"

沒有suppess通配符*?也就是說,上述命令的輸出都是以字母d開頭的文件和目錄的所有路徑,就好像正在進行一些擴展一樣.我期望通配符被抑制,因此它只會輸出到名為d *的文件的路徑,但事實並非如此.

這是否意味着雙引號在某些情況下會有例外情況?

謝謝!

解決方法:

引號抑制shell的通配符擴展,這意味着在這種情況下,查找-name的參數將是文字d *.

如果沒有引號,shell將是擴展通配符的shell,在這種情況下,d *將擴展為以d開頭的當前目錄中的所有名稱的列表,或者在沒有此類文件的情況下擴展為d *.

-name搜索標准將模式作為參數使用與shell globs相同的語法.在這種情況下,模式旨在由find解釋,而不是由shell解釋,因此需要引號.

要搜索文字*,可以將其括在方括號中:

find -name "d[*]"

或用反斜杠逃避它:

find -name 'd\*'

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM