【Linux 运维】 笔记001只列出当前目录下的一级子目录

举报
Yuchuan 发表于 2022/04/17 17:10:41 2022/04/17
【摘要】 如何过滤出已知当前目录下的所有一级目录

1、如何过滤出已知当前目录下的所有一级目录(提示:不包含目录下面目录的子目录即隐藏目录,即只能时一级目录)?

正则表达式:

解答:

分析过程:要完成此题,我们首先要知道如何区分目录和文件。

思路想法:

1、根据颜色区分文件和目录(浅蓝色时目录,默认是深蓝色)。

2、ls -l 输出结果中已d (全拼directory)开头的就是目录。

3、ls -l 输出结果中第二列数字大于1的即使目录(文件没有硬连接数的情况下是对的)。

[master4@master4-server u]$ ls -l | awk '$2>1{print}'
total 5020
drwxrwxr-x.  3 master4 master4      19 Mar 22 16:03 CATCiris
drwxr-xr-x. 46 master4 master4    4096 Mar 29 10:57 deco
drwxrwxr-x. 24 master4 master4    4096 Mar 22 16:04 decoIRIS
drwxrwxr-x.  4 master4 master4      61 Mar 22 16:04 deco-pc-convert
drwxrwxr-x.  4 master4 master4      72 Mar 22 16:04 html
drwxr-xr-x.  2 master4 master4    4096 Mar 22 16:04 ibm-lib
drwxr-xr-x. 24 master4 master4    4096 Mar 22 16:04 iris
drwxrwxr-x.  9 master4 master4     108 Mar 22 16:04 ruleChkClient
drwxrwxr-x.  3 master4 master4      17 Mar 22 16:04 sdt
drwxr-xr-x. 36 master4 master4    4096 Mar 22 16:04 sdttmg
drwxr-xr-x. 10 master4 master4     132 Mar 22 16:07 sorter
drwxrwxr-x.  3 master4 master4     142 Mar 22 16:07 temp
drwx------. 19 master4 master4    4096 Mar 22 16:16 tester
[master4@master4-server u]$

4、通过给目录加标识符,然后通过过滤标识符,就过滤出目录(ls -F 或 ls -p)。

5、通过find 直接查找指定类型的文件(-d 就是目录)

[master4@master4-server u]$ find ./ -maxdepth 1 -type d ! -name "."
./CATCiris
./deco
./decoIRIS
./deco-pc-convert
./html
./ibm-lib
./iris
./ruleChkClient
./sdt
./sdttmg
./sorter
./temp
./tester
[master4@master4-server u]$

其实很简单,下面的 ls -l 的结果中以d开头的就是目录,我们要做的就是只能把这些目录打印出来。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。