部分find命令使用

linux中的文件查找遠遠比windows中文件查找要強大的多,而且是更加的迅速,以下是我通過閱讀網上的文檔整理了一部分linux中文件查找find的命令,及其命令含義解釋。

一.命令格式: 

    find pathname -options [-print -exec -ok ...] 

二.命令功能:

    用於在文件樹種查找文件,並作出相應的處理(可能訪問磁盤)

三.命令參數含義:

pathname: find命令所查找的目錄路徑。例如用.來表示當前目 錄,用/來表示系統根目錄。 

-print: find命令將匹配的文件輸出到標準輸出。 

-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } \;,注意{   }和\; 之間的空格。  

-ok: 和-exec的作用相同,只不過以這種更爲安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

四.命令選項:

-name   按照文件名查找文件。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/4C/wKioL1c9fgWhnuADAABDQMaYhGA941.png" title="無標題.png" alt="wKioL1c9fgWhnuADAABDQMaYhGA941.png" />

-perm   按照文件權限來查找文件。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/80/4B/wKioL1c9ezPzb6TnAADHmHsvxXQ101.png" title="無標題.png" alt="wKioL1c9ezPzb6TnAADHmHsvxXQ101.png" />-prune  使用這個選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那麼                -prune將被find命令忽略。 

-user   按照文件屬主來查找文件。

-group 按照文件所屬的組來查找文件。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/80/4C/wKioL1c9fsWzJHrcAAA7oTTMjBA402.png" title="無標題.png" alt="wKioL1c9fsWzJHrcAAA7oTTMjBA402.png" />

-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 - 普通文件。 

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/4C/wKioL1c9gDWwfTDlAACwnGMevnY471.png" title="無標題.png" alt="wKioL1c9gDWwfTDlAACwnGMevnY471.png" />

-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

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/80/44/wKiom1c8PKWTsDNgAABfATeG0uY145.png" title="無標題.png" alt="wKiom1c8PKWTsDNgAABfATeG0uY145.png" />

[root@localhost /]# find / -size +20000000c //查找文件大小大於20000000字節的文件

//+表示大於前面這個數的文件,-表示小於前面這個數的文件

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/80/44/wKiom1c8PcbgR_3EAAFkV7jp4lg508.png" title="無標題.png" alt="wKiom1c8PcbgR_3EAAFkV7jp4lg508.png" />

[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:在查找文件時,首先查找當前目錄中的文件,然後再在其它目錄中查找。 

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/80/4F/wKiom1c9gMjgmUPoAAA_7OgZ3a4220.png" title="無標題.png" alt="wKiom1c9gMjgmUPoAAA_7OgZ3a4220.png" />

-maxdepth: 在某個層次的目錄中按照遞減方法查找

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/80/4F/wKiom1c9gYnTeMA6AABw7dBPKIA269.png" title="無標題.png" alt="wKiom1c9gYnTeMA6AABw7dBPKIA269.png" />

-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命令,將這些文件備份到磁帶設備中。

哦(you)千(need)吶(weight)650) this.width=650;" src="http://img.baidu.com/hi/tsj/t_0012.gif" alt="t_0012.gif" />

本文出自 “Pzd流川楓” 博客,請務必保留此出處http://xujiafan.blog.51cto.com/10778767/1775121

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章