Linux centos7查看目录下子目录的方法

(所述方法是在当前目录下,如在其他目录,要注意查找目录的表达)

在目录中,一般存放着普通文件及目录文件。

可用ls查看目录下的所有文件

如果我们仅仅希望查询目录下的子目录文件,不需要出现普通文件,如何操作呢?

下面提供6种方法,供参考。

1.ls -d  */

我们知道,加-d选项,是仅列出目录,而不列出目录下的文件,而参数 */ 是指当前目录中的所有内容

*通配符,代表多个字符,所有的意思;?通配符,代表一个字符

此处的参数不能写. 、./ 、*等

2.ls -F | grep /$

加-F选项,是在目录文件后面添加标记/。再搜索此标记时,就仅能看到目录

grep 主要功能是搜索字符串,是处理文本时的重要命令,主要按行处理文件

grep与sed和awk并称为linux三剑客。如配合正则表达式,功能将十分强大

/$ 是正则表达式,表示以/结尾的行;^d表示以d开头的行

3.ll |grep ^d

ll是ls  -l的别名(执行alias命令,可以看到全部有别名的命令)

ll列表显示目录下的文件,而以d开头的文件正是目录文件

其他文件类型有:

- 普通文件

b 块设备文件

c 字符设备文件

l 链接文件

p 管道文件

s 套接字文件

4.stat ./* | grep  -B 1 "directory"

stat命令是详细列出文件信息。在目录中的文件很多,搜索"directory"可只显示目录

grep的-B 1选项是指显示符合条件的行及其之前的行,”B”before之意,数字1指显示前面的1行

与-B类似的还有:

-A n 显示结果行的后n行,“A有after之意”

-C n 显示结果行的前后n行,"C是context之意,上下文。也可以通过center中间、中部 帮助记忆命令选项"

(ll 命令执行的结果,正是系统调用stat命令,再按一定格式输出的结果。查询ls内核源代码,可以进一步理解stat命令)

(系统语言为中文时,可搜索"目录")

5.find . -maxdepth 1 -type d | grep -v  '^./.'

-maxdepth 1 指定搜索的目录层级,仅1级

find后面的点代表在当前目录下查询,可用路径替代,-type d表示查询文件的类型为 d(目录)

通过grep过滤掉隐藏文件(命令中的两个右斜杠是转义,即点代表点符号,而不是匹配任意单个字符)

grep  -v 代表查询结果取反

查询结果中的第一行:./  代表查询的哪一个目录(查询当前目录时,也可以用./表示)

后面的几行才是查询结果

6.tree -L 1 -d

tree命令显示目录的层次结构,没有选项时显示所有文件及层次

选项-L 1仅显示一级(L是level 的简写,表示层级,层)

选项-d 仅显示目录

不指定tree命令参数,默认是显示当前目录的文件结构