命令功能:
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