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