Linux命令练习第二关(1)

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

解答:

  1. 根据颜色区分文件和目录(蓝色)。
  2. ls -l结果中以d开头的就是目录。
  3. 通过给目录加标识,然后通过过滤标识就过滤出目录(ls -F或ls -p)。
  4. 通过find直接查找指定类型的文件(-d 就是目录)。

实验数据:
Linux命令练习第二关(1)_第1张图片
d开头的是目录

Linux命令练习第二关(1)_第2张图片

方法二:

基础正则表达式字符’^’:表示以…开头,如^ian,以ian开头的那一行。
这里写图片描述

#  过滤出以d开头的那行
[root@ianLinux iantest]# ls -l|grep "^d"

这里写图片描述

方法三:

①ls 的-F参数给不同文件类型结尾加标识。

-F, --classify
              append indicator (one of */=>@|) to entries

 -p, --indicator-style=slash
              append / indicator to directories #只是在目录后面加/

ls -F /dev
这里写图片描述

②基础正则表达式字符’$’:表示以…结尾,如ian\$,表示以ian结尾的那一行。

这里写图片描述

# 过滤包含/的
[root@ianLinux iantest]# ls -lF/grep "/"

# 过滤以/结尾的
[root@ianLinux iantest]# ls -lF|grep "/$"

Linux命令练习第二关(1)_第3张图片

方法四:

直接[root@ianLinux iantest]# find /data/iantest/ -type d会查找到二级目录
这里写图片描述

find的-maxdepth参数可以控制查找深度

[root@ianLinux iantest]# find /data/iantest/ -maxdepth 1  -type d

这里写图片描述

‘! ‘非的使用,去除查找结果中的当前目录/data/iantest

[root@ianLinux iantest]# find /data/iantest/ -maxdepth 1  -type d ! -name "iantest"

这里写图片描述

方法五:

[root@ianLinux iantest]# tree -Ld 1
#tree 显示目录树结构 -L 层数 -d 目录

这里写图片描述

方法六:

sed的过滤: sed -n ‘/过滤的内容/处理的命令’ 文件

[root@ianLinux iantest]# ls -l|sed -n '/^d/p'

这里写图片描述

方法七:

awk的过滤:

[root@ianLinux iantest]# ls -l|awk '/^d/'

这里写图片描述

你可能感兴趣的:(Linux命令练习)