我在bash中试用通配符,并尝试列出以“xyz”开头但不以“.TXT”结尾但获得不正确结果的所有文件。使用通配符排除具有特定后缀的文件
这里是我试过的命令:
$ ls -l xyz*[!\.TXT]
它不上市与名称“某某”和“xyzTXT”我有我的目录中的文件。但是,它列出了“xyz1”,“xyz123”。
看起来好像在“xyz *”之后加上[!\.TXT]
使得shell查找以“xyz”开头并且至少有一个字符的东西。
任何想法为什么会发生以及如何纠正此命令?我知道这可以通过其他命令来实现,但我特别想知道它为什么会失败,以及是否可以使用通配符。
我想这是有道理的。谢谢。 – 2012-07-11 17:01:37
@RameshSamane,做一些测试,例如,名为'xyzwhateverTXTyouwant','xyzwhateveryouwant.'和'xyzwhateveryouwantX'的文件。你的方法将为第一个工作,但会失败的另外两个。 – Zagorax 2012-07-11 17:04:02
是的,你是对的。我证实了它。 – 2012-07-11 20:32:48