列出所有没有扩展名的文件

列出所有没有扩展名的文件

我想列出目录中所有没有扩展名的文件。

例如:

$ ls
a.txt    b      c.pdf     d     e.png
$ ls -someOption
b       d

我可以使用什么命令来代替ls -someOption

答案1

shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot

您会发现这样做会显示工作目录中每个目录的内容。如果您不想这样,请使用:

ls -d !(*.*)

您可以输入,shopt -s extglob以便~/.bashrc在打开终端时激活它。默认的 Ubuntu 中已经有一行~/.bashrc(13.04 上我的是第 29 行),您可以取消注释以启用此功能(和 globstar)。

格雷格的维基有关 shell 的各种通配符选项的更多信息。请注意,这是 bash shell 的属性,而不是命令的属性ls,因此您可以将其与其他命令一起使用。

或者,您可以使用

ls --ignore='*.*'

或者

ls -I '*.*'

...这是一个内部ls选项,但 extglob 可以应用于任意命令,因此在我看来更有用。

答案2

ls | grep -v \\.和都ls | grep -v "\."有效。

相关内容