我正在尝试使用 bash 中的通配符,并尝试列出所有以“xyz”开头但不以“.TXT”结尾但得到不正确结果的文件。
这是我尝试过的命令:
$ ls -l xyz*[!\.TXT]
它没有列出我目录中名称为“xyz”和“xyzTXT”的文件。但是,它列出了“xyz1”、“xyz123”。
似乎[!\.TXT]
在“xyz *”之后添加会使外壳程序寻找以“xyz”开头并且后面至少有一个字符的东西。
任何想法为什么会发生以及如何更正此命令?我知道它可以使用其他命令来实现,但我特别想知道它失败的原因以及它是否可以仅使用通配符来完成。