一個通配符引起的錯誤

通配符的意思。我想 沒有幾個人不會的。比如*代表任意數量的任意字符。?代表一個任意字符。。但是在使用中卻有時會經常出錯。。特別是在命令行上運行時

我們知道shell 的參數解析是“-”,也就是說把“-”開頭或“--”當作是參數。。這可和Win的“/”個不同。。

也就是這個問題。。我想把我的全部文件擴展名改改。。很簡單吧。。用rename命令啊。。比如把txt改成sh。。則就這樣吧 rename s/\.txt$/\.sh/  *  問題就在這個通配符* 上,,我試了n次還是說我的rename有參數不正確。。我就不知道哪裏有錯了。我man 了下rename 。。根本就沒有錯嘛!!!

我鬱悶了。。然後試試ls * ,還是有錯!!難道有bug嗎?

結果btw過來看了下。。原來是錯在* 啊。。。我當時剛好有個文件以“-” 開頭。。我也不知道當時怎麼會有這個文件。。鬱悶死了。。那* 解析出來肯定會有個類似這樣的“-xxx”,這就會解析成參數啦。。所以當然有錯了。。

所以雖然平時都知道*的作用。。但有時卻會忽視它。。。造成很大的錯誤。。以後注意點點啊!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章