如何显示目录中名称包含数字的所有文件?我试过了
ls [0-9] textfiles
( textfiles
) 是我的目录。
我的 Linux 袖珍指南就是这样显示的。我只是试图显示名称中包含数字的所有文件。我实际上尝试了在我的书和网上找到的大约 20 多种变体。
答案1
你可能想要类似的东西
ls textfiles/*[0-9]*
或者(如果“textfiles
是我的目录”意味着您在目录内):
ls *[0-9]*
请注意,这些命令并不局限于常规文件。目录、符号链接、命名管道和其他条目都可能匹配。在广义的 Unix 上下文中,所有这些都是“文件”,并且这种匹配仅针对其名称进行。要区分常规文件,您需要另一个工具,例如find
。
我很惊讶任何指南都向您提出建议,ls [0-9] textfiles
因为这在您的问题的背景下没有什么意义。
解码请*[0-9]*
参阅man 7 glob
或例如本文,标准通配符(通配符模式)部分。值得注意的是,在上述情况下,是 shell(不是ls
!)扩展了给定的模式。
答案2
find
也可以使用,并且可以仅显示文件,例如在当前目录中(.
):
find . -type f -name "*[0-9]*"
默认情况下它是递归的,但可以使用-maxdepth 1
来避免这种情况。