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的⽂文件