在linux系统的使用过程中,查看当前目录下包含哪些子目录是日常操作中的常见需求,不同的命令可以实现不同的查看效果,适配不同的使用场景。

使用ls命令查看子目录
ls是linux中最基础的目录查看命令,通过搭配不同的参数可以快速筛选出当前目录下的子目录。默认情况下ls会列出当前目录下的所有文件和目录,我们可以通过-d参数配合通配符只显示目录项。
常用的查看子目录的命令如下:
# 列出当前目录下所有可见的子目录和文件 ls # 只列出当前目录下的子目录,不显示文件 ls -d */ # 列出所有子目录包括隐藏目录,隐藏目录以.开头 ls -d .*/ */ # 以长格式显示子目录的详细信息,包括权限、所有者、大小等 ls -ld */
其中-d参数的作用是只显示目录本身,而不是目录下的内容,*是通配符代表任意字符,/标识目录类型,组合起来就可以筛选出所有子目录。
使用find命令查看子目录
find命令的功能更强大,支持按条件搜索文件系统中的文件,我们可以通过设置搜索条件来精准查找当前目录下的子目录,还可以控制搜索的深度。
常用的find命令示例如下:
# 查找当前目录下的所有子目录,只搜索当前目录一层,不递归子目录 find . -maxdepth 1 -type d # 排除当前目录本身,只显示子目录 find . -maxdepth 1 -type d ! -name "." # 查找当前目录下名称包含test的子目录 find . -maxdepth 1 -type d -name "*test*"
这里-maxdepth 1表示只搜索当前目录这一层,不会递归进入子目录查找,-type d表示只匹配目录类型,! -name "."是排除当前目录本身的结果。
使用tree命令查看子目录
tree命令可以以树形结构展示目录层级,直观呈现当前目录下的子目录结构,不过部分linux系统默认没有安装这个命令,需要先安装。
安装和使用示例如下:
# Ubuntu/Debian系统安装tree sudo apt install tree # CentOS/RHEL系统安装tree sudo yum install tree # 只显示当前目录下的子目录,不显示文件,只展示一层结构 tree -d -L 1 # 显示子目录的同时显示文件数量统计 tree -d --dirsfirst
-d参数表示只显示目录,-L 1表示只展示一层目录深度,不会展开子目录下的内容,适合快速查看当前目录的直接子目录。
不同方法的适用场景
我们可以根据实际需求选择合适的查看方法:
- 如果只是快速查看当前目录下的子目录,不需要额外信息,优先使用
ls -d */,操作简单执行速度快 - 如果需要按名称、修改时间等条件筛选子目录,或者需要控制搜索深度,使用find命令更灵活
- 如果需要直观看到目录的层级结构,或者需要展示子目录的嵌套关系,使用tree命令效果更好
注意事项
在使用这些命令时需要注意几个问题:
- 隐藏目录默认不会显示在
ls -d */的结果中,需要额外添加.*/才能显示 - find命令如果不加
-maxdepth参数,会默认递归查找所有子目录下的内容,可能返回大量结果 - tree命令如果未安装需要先安装,没有安装权限的情况下无法使用该命令
如果当前目录下子目录数量很多,建议搭配管道符和more、less命令分页查看结果,避免输出内容刷屏,例如ls -d */ | more。