一个通配符引起的错误

通配符的意思。我想 没有几个人不会的。比如*代表任意数量的任意字符。?代表一个任意字符。。但是在使用中却有时会经常出错。。特别是在命令行上运行时

我们知道shell 的参数解析是“-”,也就是说把“-”开头或“--”当作是参数。。这可和Win的“/”个不同。。

也就是这个问题。。我想把我的全部文件扩展名改改。。很简单吧。。用rename命令啊。。比如把txt改成sh。。则就这样吧 rename s/\.txt$/\.sh/  *  问题就在这个通配符* 上,,我试了n次还是说我的rename有参数不正确。。我就不知道哪里有错了。我man 了下rename 。。根本就没有错嘛!!!

我郁闷了。。然后试试ls * ,还是有错!!难道有bug吗?

结果btw过来看了下。。原来是错在* 啊。。。我当时刚好有个文件以“-” 开头。。我也不知道当时怎么会有这个文件。。郁闷死了。。那* 解析出来肯定会有个类似这样的“-xxx”,这就会解析成参数啦。。所以当然有错了。。

所以虽然平时都知道*的作用。。但有时却会忽视它。。。造成很大的错误。。以后注意点点啊!!!!

posted @ 2011-08-03 23:57  int32bit  阅读(142)  评论(0编辑  收藏  举报