Linux centos7如何查看目录下的子目录

 更新时间:2023年11月08日 09:46:07   作者:qq_36142959  
这篇文章主要介绍了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命令参数,默认是显示当前目录的文件结构

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论