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

New*_*Mrd 14 command-line file-format ls

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

例如:

$ ls
a.txt    b      c.pdf     d     e.png
$ ls -someOption
b       d
Run Code Online (Sandbox Code Playgroud)

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

evi*_*oup 20

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

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

ls -d !(*.*)
Run Code Online (Sandbox Code Playgroud)

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

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

或者,您可以使用

ls --ignore='*.*'
Run Code Online (Sandbox Code Playgroud)

或者

ls -I '*.*'
Run Code Online (Sandbox Code Playgroud)

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


kro*_*owe 10

无论ls | grep -v \\.ls | grep -v "\."作品。