linux 的find指令的一些常用方法

find指令: Linux下find命令在目錄結構中搜索⽂文件,並執⾏行指定的操作。

命令格式: find pathname -options [-print -exec -ok ...]

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

命令參數:

1). pathname: find命令所查找的目錄路徑。

例如.來表⽰示當前目錄,用/來表⽰示系統根目錄,~表示工作目錄,..表示上級目錄等。

2)

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

 -exec: find命令對匹配的文件執⾏行該參數所給出的shell命 令。

相應命令的形式爲'command' {  } \;,注意{   }和\; 之間的空格。 

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

  例子: 1. 在/ l o g s目錄中查找更改時間在5日以前的⽂件並刪除它們:    $ find logs -type f -mtime +5 -exec    -ok    rm {} \

3).options:命令選項:

(1)-name   按照文件名查找文件。

例:

$find ~ -name "*.txt" -print      #在$HOME中查.txt文件並顯示  $find . -name "[A-Z]*" -print      #查以大寫字母開頭的文件                                    $find /etc  -name  "host*"  -print #查以host開頭的文件 $find .  -name  "[a-z][a-z][0–9][0–9].txt" -print   #查以兩個小寫字母和兩個數字開頭的txt文件

 

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

例:

$find .  -perm   755  -print

$find  . -perm -007    -exec ls -l {} \; #查所有用戶都可讀寫執行的文件同時列出

(3)-prune  使⽤這一選項可以使find命令不在當前指定的目錄中查找,如果同時使⽤用-depth選項,那麼-prune將被find命令忽略。

(4)-user / -group   按照⽂文件屬主/組來查找⽂件。

例:

 find /home  -user  cnscn 列出/home目錄內屬於用戶cnscn的文件或目錄

 Find  /home -group  cnscn   列出/home內組爲cnscn的文件或目錄

(5)-mtime -n +n  按照⽂文件的更改時間來查找⽂文件, - n表⽰示⽂件更改時間距現在n天以內,+ n表⽰示⽂文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time 選項相同.

例:

Find  /home  -mtime  -2   在/home下查最近兩天內改動過的文件

find /home -atime -1       1天之內被存取過的文件

 find /home -mmin  +60  在/home下查60分鐘前改動過的文件

 find  /home  -amin   +30   查最近30分鐘前被存取過的文件

(6)-nogroup  查找無有效所屬組的⽂文件,即該文件所屬的組在/etc/groups中不存在。
(7)-nouser   查找無有效屬主的⽂文件,即該⽂件的屬主在/etc/ passwd中不存在。
(8)-newer file1 ! file2  查找更改時間⽐比⽂文件file1新但⽐文件file2舊的⽂件。

例:

(7) find /home -newer  tmp.txt!Temp.c   /home下查更新時間比tmp.txt近但⽐文件Tep.c舊的⽂件。

(9)-type  查找某⼀一類型的⽂文件,諸如:b - 塊設備⽂文件。d - 目錄。

 c - 字符設備⽂文件。p - 管道⽂文件。l - 符號鏈接⽂文件。f - 普通⽂文件。

例:

$find  .  -type   d   -print 

$find   .  -type l   -print
(10)-size n:[c] 查找文件長度爲n塊的文件,帶有c時表⽰文件長度以字節計。

例:
$find  . -size  +1000000c -print    #查長度大於1Mb的文件 $find  . -size   100c   -print   # 查長度爲100c的文件 $find  . -size  +10   -prin    #查長度超過期作廢10塊的文件(1=512字節

(11)-depth:在查找文件時,首先查找當前目錄中的文件,然後再在其⼦目錄中查找。

 (12)-fstype:查找位於某⼀類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。

(13)-mount:在查找⽂件時不跨越文件系統mount點。

(14)-follow:如果find命令遇到符號鏈接⽂件,就跟蹤⾄鏈接所指向的⽂件。

(15)-cpio:對匹配的文件使⽤用cpio命令,將這些⽂件備份到磁帶設備中。

2. Linux 用find命令查找文件⼤小爲XX的⽂文件的辦法   

  例:一個⽂文件5556字節,可以這樣寫     find /root -size -5557c -size +5555c -exec ls -ld {} \;    即查找⼤大於5555字節⼩小於5557字節的⽂文件,以上查找的是/root 目錄    

 find /root -size -500K -size +50K -exec ls -ld {} \;     查找 ⼩小於500K,⼤大於50K的⽂文件 

發佈了31 篇原創文章 · 獲贊 12 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章