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 可以应用于任何任意命令,因此在我看来更有用。