linux中的文件查找遠遠比windows中文件查找要強大的多,並且是更加的迅速,如下是我經過閱讀網上的文檔整理了一部分linux中文件查找find的命令,及其命令含義解釋。linux
一.命令格式: shell
find pathname -options [-print -exec -ok ...] vim
二.命令功能:windows
用於在文件樹種查找文件,並做出相應的處理(可能訪問磁盤)安全
三.命令參數含義:ide
pathname: find命令所查找的目錄路徑。例如用.來表示當前目 錄,用/來表示系統根目錄。 spa
-print: find命令將匹配的文件輸出到標準輸出。 orm
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } \;,注意{ }和\; 之間的空格。 blog
-ok: 和-exec的做用相同,只不過以這種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行。文檔
四.命令選項:
-name 按照文件名查找文件。
-perm 按照文件權限來查找文件。
-prune 使用這個選項可使find命令不在當前指定的目錄中查找,若是同時使用-depth選項,那麼 -prune將被find命令忽略。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件, - n表示文件更改時間距如今n天之內,+ n表示文件更改時間距如今n天之前。find命令還有-atime和-ctime 選項,但它們都和-m time 選項相同。
[root@localhost class_1]# ls cmd file kk kk2 test TEST.c [root@localhost class_1]# vim TEST.c [root@localhost class_1]# gcc -o test TEST.c [root@localhost class_1]# ./test change world. linux [root@localhost class_1]# find . -amin -10 //查找在系統最後10分鐘訪問的文件 . ./test ./TEST.c ./cmd [root@localhost class_1]# find . -atime -2 //查找在系統最後48小時訪問的文件 . ./test ./TEST.c ./kk2 ./cmd [root@localhost class_1]# find . -mmin -5 //查找在系統在最後5分鐘修改過的文件 . ./test ./TEST.c ./cmd [root@localhost class_1]# find . -mtime -5 //查找系統在最後5小時修改過的文件 . ./.file ./test ./TEST.c ./kk2 ./kk2/test.c ./kk ./file ./cmd [root@localhost class_1]# find . -cmin -5 //查找在系統在最後5分鐘被改變狀態的文件 . ./test ./TEST.c ./cmd [root@localhost class_1]# find . -ctime -1//查找在系統在最後24小時被改變狀態的文件 . ./test ./TEST.c ./cmd //文件狀態判斷: //-mtime: 指定時間文件內容被修改過 //-ctime: 指定時間文件權限被修改過 //-atime: 指定時間文件被讀取過
-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser 查找無有效屬主的文件,即該文件的屬主在/etc/ passwd中不存在。
[root@localhost home]# ll total 12 drwx------. 4 curry curry 4096 May 19 13:32 curry drwx------. 27 jf jf 4096 May 18 22:47 jf drwx------. 35 xjf xjf 4096 May 19 13:29 xjf [xjf@localhost home]$ ll 總用量 8 drwx------. 27 jf jf 4096 5月 18 22:47 jf drwx------. 35 xjf xjf 4096 5月 19 13:29 xjf [root@localhost ~]# find / -nouser //查找系統當中做廢用戶的文件 /var/spool/mail/curry find: `/proc/2531/task/2531/fd/5': No such file or directory find: `/proc/2531/task/2531/fdinfo/5': No such file or directory find: `/proc/2531/fd/5': No such file or directory find: `/proc/2531/fdinfo/5': No such file or directory
-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件。
-type 查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號連接文件。
f - 普通文件。
-size n:[c] 查找文件長度爲n塊的文件,帶有c時表式文件長度以字節計。
[root@localhost test]# cd Test_1/ [root@localhost Test_1]# ll total 12 -rwxr-----. 1 jf jf 347 May 14 15:58 a.c -rwx-wx-wx. 1 root root 4691 May 14 15:58 a.exe [root@localhost /]# find / -size 4691c //查找大小爲4691字節的文件 //-size表示文件大小,c表示字節,還有k,M,G
[root@localhost /]# find / -size +20000000c //查找文件大小大於20000000字節的文件 //+表示大於前面這個數的文件,-表示小於前面這個數的文件
[root@localhost class_1]# ll -al total 44 drwxrwxr-x. 3 xjf xjf 4096 May 13 21:45 . drwxrwxr-x. 8 xjf xjf 4096 May 14 23:04 .. -rw-rw-r--. 1 xjf xjf 15280 May 13 21:45 cmd -rw-rw-r--. 1 xjf xjf 290 May 13 21:11 file -rw-r--r--. 1 xjf xjf 0 May 13 20:44 .file -rw-rw-r--. 1 xjf xjf 0 May 13 21:12 kk drwxrwxr-x. 2 xjf xjf 4096 May 13 20:49 kk2 -rwxrwxr-x. 1 xjf xjf 4682 May 13 21:23 test -rw-rw-r--. 1 xjf xjf 66 May 13 21:23 TEST.c [root@localhost class_1]# find . -empty //查找空文件 ./.file ./kk
-depth:在查找文件時,首先查找當前目錄中的文件,而後再在其它目錄中查找。
-maxdepth: 在某個層次的目錄中按照遞減方法查找
-maxdepth選項的做用就是限制find命令在目錄中按照遞減方式查找文件的時候搜索文件超過某個級別或者搜索過多的目錄,這樣致使查找速度變慢,查找花費的時間過多。例如,咱們要在當前.目錄子目錄中查找一個名叫fred的文件,咱們可使用以下命令
find . -maxdepth 2 -name fred
假如這個fred文件在./sub1/fred目錄中,那麼這個命令就會直接定位這個文件,查找很容易成功。假如,這個文件在./sub1/sub2 /fred目錄中,那麼這個命令就沒法查找到。由於前面已經給find命令在目錄中最大的查詢目錄級別爲2,只能查找2層目錄下的文件。這樣作的目的就是爲了讓find命令更加精確的定位文件,若是你已經知道了某個文件大概所在的文件目錄級數,那麼加入-maxdepth n 就很快的能在指定目錄中查找成功。
-fstype:查找位於某個類型文件系統中的文件,這些文件系統類型一般能夠在配置文件/etc/fstab中
找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:若是find命令遇到符號連接文件,就跟蹤至連接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。