Linux centos7如何查看目录下的子目录
作者:qq_36142959
(所述方法是在当前目录下,如在其他目录,要注意查找目录的表达)
在目录中,一般存放着普通文件及目录文件。
可用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命令参数,默认是显示当前目录的文件结构
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。