linux下如何控制ls只显示目录或者只显示文件?可以通过grep过滤的方式来实现。

只显示目录

$ ls -l | grep ^d

只显示文件

$ ls -l | grep ^-

说明:

通常执行 ls -l 命令后后会得到类似下面的内容:

$ ls -l
-rwxr-xr-x 1 1000 1000 47 Nov 22 04:09 autogen.sh
drwxr-xr-x 4 1000 1000 4096 Dec 2 20:10 bootstrap 

可以看到文件是以"-"开头 , 目录是"d"开头的, 所以这就是后面grep的内容。

正则表达式中^符合表示匹配输入字符串开始的位置。