博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux之find

Posted on 2018-09-09 16:18  (︶O︶)  阅读(1789)  评论(0编辑  收藏  举报

命令功能:

find命令是用来在给定的目录下查找符合给定条件的文件。它需要从磁盘中查找,效率低,whereis和locate是基于缓存中数据库查找,效率很高,但是一些新建的文件可能未加入到数据库中,使用whereis和locate不一定找到相应的文件。

命令格式:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]

命令参数:

expression:

-name       -name可以对文件的basename进行匹配。查找的文件名最好使用引号包围,可以配合通配符进行查找,但是basename中不能有“/”字符。默认为递归查找。=》见实例1、实例3

-type        根据文件类型搜索:一般需要搜索的文件类型就只有普通文件(f),目录(d),链接文件(l),块设备文件(b),字符设备文件(c),管道文件(p),socket文件(s)。=》见实例2

命令实例:

1.在当前目录下,使用-name查找包含“bash”的文件

vbird@Ubuntu1604:~$ ll
total 132
drwxr-xr-x 4 vbird vbird  4096 9月   9 16:05 ./
drwxr-xr-x 5 root  root   4096 9月   8 16:39 ../
-rw-rw-r-- 1 vbird vbird    11 9月   9 16:05 aa
-rw------- 1 vbird vbird   739 9月   9 09:19 .bash_history
-rw-r--r-- 1 vbird vbird   220 9月   8 16:39 .bash_logout
-rw-r--r-- 1 vbird vbird  3771 9月   8 16:39 .bashrc
drwx------ 2 vbird vbird  4096 9月   8 16:41 .cache/
-rw-r--r-- 1 vbird vbird  8980 9月   8 16:39 examples.desktop
-rw-r--r-- 1 root  root  71477 9月   9 16:03 find_cmd.txt
-rw------- 1 vbird vbird    36 9月   9 13:55 .lesshst
lrwxrwxrwx 1 root  root      4 9月   9 13:52 link -> /bin/
-rw-r--r-- 1 vbird vbird   655 9月   8 16:39 .profile
drwxrwxr-x 3 vbird vbird  4096 9月   9 16:16 test/
-rw------- 1 vbird vbird   816 9月   9 16:05 .viminfo
-rw------- 1 vbird vbird   169 9月   9 09:19 .Xauthority
vbird@Ubuntu1604:~$ find ./ -name "*bash*"
./.bash_logout
./.bash_history
./.bashrc
./test/bash22

 2.查找当前目录下的链接文件

vbird@Ubuntu1604:~$ ll
total 132
drwxr-xr-x 4 vbird vbird  4096 9月   9 16:05 ./
drwxr-xr-x 5 root  root   4096 9月   8 16:39 ../
-rw-rw-r-- 1 vbird vbird    11 9月   9 16:05 aa
-rw------- 1 vbird vbird   739 9月   9 09:19 .bash_history
-rw-r--r-- 1 vbird vbird   220 9月   8 16:39 .bash_logout
-rw-r--r-- 1 vbird vbird  3771 9月   8 16:39 .bashrc
drwx------ 2 vbird vbird  4096 9月   8 16:41 .cache/
-rw-r--r-- 1 vbird vbird  8980 9月   8 16:39 examples.desktop
-rw-r--r-- 1 root  root  71477 9月   9 16:03 find_cmd.txt
-rw------- 1 vbird vbird    36 9月   9 13:55 .lesshst
lrwxrwxrwx 1 root  root      4 9月   9 13:52 link -> /bin/
-rw-r--r-- 1 vbird vbird   655 9月   8 16:39 .profile
drwxrwxr-x 3 vbird vbird  4096 9月   9 16:19 test/
-rw------- 1 vbird vbird   816 9月   9 16:05 .viminfo
-rw------- 1 vbird vbird   169 9月   9 09:19 .Xauthority
vbird@Ubuntu1604:~$ find ./ -type l
./link

 3.在当前目录下查找以a~g开头,后缀为txt的文件(涉及到正则表达式,后面学到再链接

vbird@Ubuntu1604:~$ ll
total 132
drwxr-xr-x 4 vbird vbird  4096 9月   9 16:05 ./
drwxr-xr-x 5 root  root   4096 9月   8 16:39 ../
-rw-rw-r-- 1 vbird vbird    11 9月   9 16:05 aa
-rw------- 1 vbird vbird   739 9月   9 09:19 .bash_history
-rw-r--r-- 1 vbird vbird   220 9月   8 16:39 .bash_logout
-rw-r--r-- 1 vbird vbird  3771 9月   8 16:39 .bashrc
drwx------ 2 vbird vbird  4096 9月   8 16:41 .cache/
-rw-r--r-- 1 vbird vbird  8980 9月   8 16:39 examples.desktop
-rw-r--r-- 1 root  root  71477 9月   9 16:03 find_cmd.txt
-rw------- 1 vbird vbird    36 9月   9 13:55 .lesshst
lrwxrwxrwx 1 root  root      4 9月   9 13:52 link -> /bin/
-rw-r--r-- 1 vbird vbird   655 9月   8 16:39 .profile
drwxrwxr-x 3 vbird vbird  4096 9月   9 16:19 test/
-rw------- 1 vbird vbird   816 9月   9 16:05 .viminfo
-rw------- 1 vbird vbird   169 9月   9 09:19 .Xauthority
vbird@Ubuntu1604:~$ find ./ -name "[a-g]*.txt"
./find_cmd.txt
./test/b.txt
./test/a.txt
./test/dir/d.txt
./test/dir/c.txt