CentOS 7 获取某个目录下的一级目录
题目:
已知/root
目录下,有如下目录和文件。获取/root
目录中的一级目录,不包含子目录和文件,以及隐藏的子目录和文件。
[root@centos7 ~]# tree -a /root
/root
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── data
│ ├── test
│ │ └── a
│ │ └── b
│ │ └── c
│ │ └── d
│ │ └── e
│ │ └── f
│ │ └── g
│ └── test.txt
├── data2
├── data3
├── .tcshrc
├── test.txt
└── .viminfo
11 directories, 10 files
方法 1 :使用 tree 命令
[root@centos7 ~]# tree -dL 1 /root
/root
├── data
├── data2
└── data3
3 directories
其中参数d
表示目录,参数L
表示目录深度,后面数字 1 指定了目录深度。
方法 2 :使用 find 命令
[root@centos7 ~]# find -maxdepth 1 -type d ! -name "."
./data2
./data3
./data
[root@centos7 ~]#
其中参数-maxdepth 1
表示目录深度 1 ,参数-type d
表示查找类型为目录,参数! -name "."
表示排除名为.
的目录。
方法 3 :使用 ls 和 grep 命令
使用ls -l /root
命令,列出/root
目录下的文件和目录。
[root@centos7 ~]# ls -l /root
total 20
-rw-------. 1 root root 1707 Apr 10 20:32 anaconda-ks.cfg
drwxr-xr-x. 3 root root 4096 Apr 28 18:24 data
drwxr-xr-x. 2 root root 4096 Apr 18 14:01 data2
drwxr-xr-x. 2 root root 4096 Apr 18 14:03 data3
-rw-r--r--. 1 root root 37 Apr 18 20:23 test.txt
然后,配合使用grep "^d"
命令,找出列表中以d
开头的。例如这样的drwxr-xr-x
就是目录了。
[root@centos7 ~]# ls -l /root | grep "^d"
drwxr-xr-x. 3 root root 4096 Apr 28 18:24 data
drwxr-xr-x. 2 root root 4096 Apr 18 14:01 data2
drwxr-xr-x. 2 root root 4096 Apr 18 14:03 data3
方法 4 :使用 ls 和 awk 命令
使用ls -l /root
命令,列出/root
目录下的文件和目录。
[root@centos7 ~]# ls -l /root
total 20
-rw-------. 1 root root 1707 Apr 10 20:32 anaconda-ks.cfg
drwxr-xr-x. 3 root root 4096 Apr 28 18:24 data
drwxr-xr-x. 2 root root 4096 Apr 18 14:01 data2
drwxr-xr-x. 2 root root 4096 Apr 18 14:03 data3
-rw-r--r--. 1 root root 37 Apr 18 20:23 test.txt
然后,配合使用awk
命令,筛选列表中第二列的值大于 1 的行。
[root@centos7 ~]# ls -l /root | awk '$2>1'
total 20
drwxr-xr-x. 3 root root 4096 Apr 28 18:24 data
drwxr-xr-x. 2 root root 4096 Apr 18 14:01 data2
drwxr-xr-x. 2 root root 4096 Apr 18 14:03 data3
[root@centos7 ~]#
方法 5 :使用 ls 和 grep 命令
使用ls -F
命令,列出/root
目录下的文件和目录。其中,参数-F
表示在每个输出项后追加文件的类型标识符。具体含义:*
表示具有可执行权限的普通文件,/
表示目录,@
表示符号链接,|
表示命令管道 FIFO,=
表示 sockets 套接字。当文件为普通文件时,不输出任何标识符。
[root@centos7 ~]# ls -F /root
anaconda-ks.cfg data/ data2/ data3/ test.txt
然后,配合使用grep
命令,在列表中找出包含斜杠/
的项。
[root@centos7 ~]# ls -F /root | grep "/"
data/
data2/
data3/
(完)