Linux下如何只显示目录名或者普通文件名

Linux osetc 1298℃ 0评论

linux find 命令linux下显示文件的时候或者查询文件的时候,如何只显示出目录文件的名字或者普通文件的名字呢?

当然,大家可能想到的第一个命令是“ls”来显示目录下的文件,但是“ls”命令显示的结果不能只显示目录文件,这个时候我们就需要考虑将ls命令和grep命令相结合来使用。


显示出当前目录下的所有的目录文件

输入下面的命令:

1
# ls -l | egrep '^d'


只显示当前目录下的普通文件

输入下面的命令:

1
#ls -l | egrep -v '^d'

上面用到egrep命令是grep命令的增强版本,它会通过后面的匹配模式(‘^’)来过滤由管道符传来的字符串。如果想显示非匹配到的普通文件,那么可以加”-v” 选项用来反转查找。

如果在平时工作的时候会经常需要上面的操作(只显示目录或只显示文件),那么可以创建别名,这样可以节省很多时间。

1
2
alias lf="ls -l | egrep -v '^d'"
alias ldir="ls -l | egrep '^d'"

将上面的两行alias命令放入bash shell的启动文件.bash_profile里,这样每次启动新的shell程序的时候,都会自动执行。

示例:

1.通过输入下面的命令来只显示出普通文件名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@devops ~]# lf
总用量 176
-rw-------. 1 root root    1124 1212 2013 anaconda-ks.cfg
-rw-------. 1 root root  184320 1212 2013 core.2410
-rw-r--r--. 1 root root   14540 11月  5 2012 epel-release-6-8.noarch.rpm
-rwxr--r--. 1 root root     257 1213 2013 GetCheckCpu.sh
-rwxr--r--. 1 root root     258 1213 2013 GetCheckMem.sh
-rw-r--r--. 1 root root    3827 1212 2013 install.log.syslog
-rw-r--r--. 1 root root     322 4月  18 04:28 rmdir.py
-rw-r--r--. 1 root root     219 4月  18 01:31 rmfile1.py
-rw-r--r--. 1 root root     170 4月  18 01:46 rmfile2.py
-rwxr--r--. 1 root root     160 4月  18 01:56 rmfile.py
-rwxr-xr-x. 1 root root    6293 1212 2013 seg
-rw-r--r--. 1 root root      96 1212 2013 seg.c
-rwxr-xr-x. 1 root root    7822 4月  18 10:19 test
-rw-r--r--. 1 root root      67 4月  18 10:10 test.c
-rw-r--r--. 1 root root      75 4月  18 10:18 test.C
-rw-rw-r--. 1 root root       0 4月  16 08:57 test.log
-rw-r--r--. 1 root root       0 2月  27 06:59 testmv
-rw-r--r--. 1 root root       0 2月  27 07:00 test.txt

2.只显示出当期目录的目录文件名

1
2
3
4
5
[root@devops ~]# ldir
drwxr-xr-x. 2 root users   4096 4月  16 09:05 testdir
drwxr-xr-x. 2 root root    4096 6月  28 22:12 testdir2
drwxr-xr-x. 2 root root    4096 6月  28 22:12 testdir3
[root@devops ~]#


通过Find 命令来只显示普通文件名或目录文件名

1.输入下面的find命令来显示出/home目录下的所有的目录文件名

1
2
3
4
5
6
7
8
9
[root@devops home]# find /home -type d -ls
391685    4 drwxr-xr-x   8 root     root         4096 416 15:29 /home
391763    4 drwx------   4 USER1    USER1        4096 416 11:44 /home/USER1
391764    4 drwxr-xr-x   4 USER1    USER1        4096 1212  2013 /home/USER1/.mozilla
392065    4 drwxr-xr-x   2 USER1    USER1        4096 818  2010 /home/USER1/.mozilla/extensions
392066    4 drwxr-xr-x   2 USER1    USER1        4096 818  2010 /home/USER1/.mozilla/plugins
392070    4 drwxr-xr-x   2 USER1    USER1        4096 1112  2010 /home/USER1/.gnome2
392079    4 drwx------   4 user2    user2        4096 416 15:29 /home/user2
392080    4 drwxr-xr-x   4 user2    user2        4096 1212  2013 /home/user2/

搞定!

更多参考:
1.grep 命令
2. grep显示匹配到的行数目
3.grep如何同时查找多个字符串匹配

转载请注明:osetc.com » Linux下如何只显示目录名或者普通文件名

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址