如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包括oldboy目录下面目录的子目录及隐藏目录,即只能是一级目录)
搭建实验环境:
mkdir oldboy
cd oldboy
mkdir ext/oldboy test xiaodong xiaofan xingfujie -p
touch jeacen oldboy wodi.gz yingsui.gz
LENG=en
tree
根据颜色区分文件和目录
ls -l 输出结果中以d(directory)开头的就是目录
ls -l 输出结果中第二列数字大于1的就是目录(文件没有硬链接的情况下)
通过给目录加标识,然后通过过滤标识,就过滤出目录(ls -F或ls -p)
通过find直接查找指定类型的文件(-d就是目录)
方法1:[root@centos oldboy]# ls -l|grep "^d"
drwxr-xr-x 3 root root 4096 May 16 10:12 ext
drwxr-xr-x 2 root root 4096 May 16 10:12 test
drwxr-xr-x 2 root root 4096 May 16 10:12 xiaodong
drwxr-xr-x 2 root root 4096 May 16 10:12 xiaofan
drwxr-xr-x 2 root root 4096 May 16 10:12 xingfujie
方法2:[root@centos oldboy]# ls -l|awk '{if($2>1) print $0}'
total 20
drwxr-xr-x 3 root root 4096 May 16 10:12 ext
drwxr-xr-x 2 root root 4096 May 16 10:12 test
drwxr-xr-x 2 root root 4096 May 16 10:12 xiaodong
drwxr-xr-x 2 root root 4096 May 16 10:12 xiaofan
drwxr-xr-x 2 root root 4096 May 16 10:12 xingfujie
方法3:[root@centos oldboy]# ls -F|grep "/$"
ext/
test/
xiaodong/
xiaofan/
xingfujie/
方法4:[root@centos oldboy]# find . -maxdepth 1 -type d ! -name "."
./xiaodong
./ext
./test
./xiaofan
./xingfujie
方法5:[root@centos oldboy]# ls -ld */
drwxr-xr-x 3 root root 4096 5月 16 10:12 ext/
drwxr-xr-x 2 root root 4096 5月 16 10:12 test/
drwxr-xr-x 2 root root 4096 5月 16 10:12 xiaodong/
drwxr-xr-x 2 root root 4096 5月 16 10:12 xiaofan/
drwxr-xr-x 2 root root 4096 5月 16 10:12 xingfujie/
方法6:[root@centos oldboy]# ls -l|sed -n '/^d/p'
drwxr-xr-x 3 root root 4096 5月 16 10:12 ext
drwxr-xr-x 2 root root 4096 5月 16 10:12 test
drwxr-xr-x 2 root root 4096 5月 16 10:12 xiaodong
drwxr-xr-x 2 root root 4096 5月 16 10:12 xiaofan
drwxr-xr-x 2 root root 4096 5月 16 10:12 xingfujie