
→ bibo9901: 因為find也把 '*' 當作 wildcard 10/11 21:19
→ zi98btcc: find . -name c\* 也有escape呀! 比較 ls c\* 10/11 21:22
→ CP64: 因為 find 最後吃到的還是 c* 10/11 21:58
→ CP64: 如果你資料夾底下有 ca cb cc 3個檔案 10/11 21:59
→ zi98btcc: 為何 ls c\* 就不一樣? 10/11 21:59
→ CP64: 因為它是 find 10/11 21:59
→ CP64: 前面說有那3個檔案時 你執行 ls c* 會被變成 ls ca cb cc 10/11 22:00
→ CP64: 執行 ls c\* 實際執行的是 ls c* 10/11 22:01
→ CP64: 然後 find 本身會拿 -name 後面拿到的字串做 wildcard 比對 10/11 22:02
→ zi98btcc: 普遍來說,ls c\* 是特例,還是 find c\*是特例? 10/11 22:06
→ CP64: 個人觀點是 find c\* 10/11 22:07
→ CP64: 因為不是每隻程式都會把吃進來的*再轉譯一次 10/11 22:07
→ CP64: 啊 但是 find 只有 -name 後面的參數才會喔 10/11 22:10
→ zi98btcc: 真是的,被這些'棉棉角角'弄的頭婚腦帳 10/11 22:16
→ CP64: 如果你不希望 shell 亂解特殊符號的話 記得用 '' 框起來 10/11 22:19
→ bibo9901: 都不是特例啊 你寫個程式自己處理argv就知道了 10/11 23:10
→ HamalAri: 哪有什麼特例? man find 看一下 -name 會花很多時間? 10/11 23:28
→ HamalAri: 不然就 'c\*' 做兩次不會喔 10/11 23:28
→ HamalAri: 覺得 bash 預設很難用也可以 GLOBIGNORE 幹掉 * 10/11 23:31
推 ckc1ark: 用set -x打開 就可以知道真正下到程式裡的argument們了 10/12 01:14
※ 編輯: zi98btcc (180.218.227.173), 10/30/2015 07:30:29