find pathname -options [ -print -exec -ok ...] pathname #是find命令所查找的目錄路徑,例如.表示當前目錄,/表示根目錄 -print #表示find命令將匹配的文件輸出到標準輸出中 -exec #表示find命令對匹配的文件執行該參數給出的shell命令。相應命令的形式爲 ‘cmd’ {} \; -ok #它的做用和-exec同樣,只是須要用戶交互,更安全
find命令的選項linux
-name #按照文件名查找文件 -perm #按照權限查找文件 -prune #使find命令不在當前指定的目錄中查找,若是同時使用-depth選項,那麼-prune將被find命令忽略 -user #按照文件屬主來查找文件 -group #按照文件數組來查找文件 -mtime -n +n #按照文件的更改時間來查找文件 -n 表示今後刻算起,文件的更改是在n天之內 +n 表示文件的更改時間是在n天之前 find命令還有-atime和-ctime選項,和-mtime選項的時間規定類 似 -nogroup #查找無有效屬組的文件,即該文件所屬的組在/etc/groups中不存在 -nouser #查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在 -newer file1 ! file2 #查找更改時間比file1新但比file2舊的文件 -type b:表示塊設備文件 block d:表示目錄 directory c:表示字符設備文件 char p:表示管道文件 pipe l:表示符號連接文件 link f:表示普通文件 file -depth #在查找文件時,首先查找當前目錄中的文件,而後再在其子目錄中查找 -fstype #表示查找位於某一類型文件系統中的文件,這些文件系統類型一般能夠在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息 -mount #表示在查找文件時不跨越文件系統的mount點 -follow #表示若是find命令遇到符號連接文件,就跟蹤至連接所指向的文件 -cpio #表示對匹配的文件使用cpio命令,將這些文件備份至磁帶設備中
find示例:shell
一、在logs目錄下查找更改時間在5日之前的文件並刪除它們 find /logs -mtime +5 -exec rm {} \;
二、在當前目錄中查找以.log結尾、更改時間在5日以上的文件,並刪除,但在刪除前給出提示 find . -name 「*.log」 -mtime +5 -ok rm {} \;
三、先用find命令匹配全部文件名爲」passwd*」的文件,而後執行grep看看這些文件中是否存在一個sam的字符串 find / -name "passwd*" -exec grep "sam" {} \;
四、查找當前用戶主目錄下的全部文件 find ~
五、查找當前目錄下644權限的文件 find . -perm 644
六、查找系統當中全部長度爲0的普通文件,並列出它們的完整路徑 find / -type f -size 0 -exec ls -l {} \;
七、查找/var/log目錄中更改時間在7日之前的普通文件,並在刪除以前進行提示 find /var/log -type f -mtime +5 -ok rm {} \;
八、查找當前目錄中全部屬於root組的文件 find . -group root -exec ls -l {} \;
九、find命令將列出目錄中訪問時間在7日之內且含有數字後綴的admin.log文件 find . -name "admin.log[0-9]*" -atime -7 -exec ls -l {} \;
用xargs來配合find工做數組
在使用find命令的-exec選項處理匹配到的文件時,find命令將全部匹配到的文件一塊兒傳遞給exec執行。但有些系統對傳遞給exec的命令長度是有限制的,這樣,在find命令運行幾分鐘以後,就會出現溢出錯誤。錯誤信息一般是」參數列太長」或」參數列溢出」。這就是xargs命令的用戶所在,特別是與find命令一塊兒使用 find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是所有,不像-exec選項那樣。這樣它就能夠先處理最早獲取的那一部分文件,而後是下一批,而且如此繼續下去。
查找root下面的每一個文件,而後使用file查看文件的類別 find /root/ -type f | xargs file
查找root下面的777權限的文件,若是找到,都改成644權限 find /root -perm 777 | xargs chmod 644
查找系統中的全部文件,並過濾出文件中帶有rmt的文件
find / -type f | xarfs grep rmt grep -rl rmt / #也能夠 r表明遞歸,l表明只列出匹配的文件
更詳細強大的find實例
1、使用name選項安全
一、在當前目錄及子目錄中查找全部的*.txt文件 find . -name "*.txt"
二、在當前目錄及子目錄中查找一個大寫字母開頭的文件 find . -name "[A-Z]*"
三、想在/etc目錄中查找文件名以host開頭的文件 find /etc -name "host*
四、查找$HOME目錄中的文件 find ~
五、想要讓系統高負荷運行,從根目錄下面查找全部文件 find / -name "*"
六、在當前目錄中查找文件名以兩個小寫字母開頭,跟着是兩個數字,最後是.txt的文件 find / -name "[a-z][a-z][0-9][0-9].txt"
2、使用perm選項ruby
找出當前文件夾下權限爲755的文件 find . -perm 755
3、使用user和mount選項bash
一、在宿主目錄下查找屬主爲sam的文件 find ~ -user sam | xargs ls -l
二、查找已經刪除用戶之前的文件 find / -nouser sam
4、按照更改時間或訪問時間等查找文件app
-:限定更改時間在距今n日之內的文件 +:限定更改時間是在n日之前的文件 一、在根目錄下查找更改時間爲最近5日的文件 find / -mtime -5 二、在根目錄下查找更改時間爲3日之前的文件 find / -mtime +3
5、查找比某個文件新或舊的文件url
一、查找比/root/a/a文件新的文件 find / -newer /root/a/a 二、查找比wanglei文件新的文件 find / -newer wanglei 在進行系統維護時,咱們常常遇到一種狀況,即發現磁盤在不停地發生寫現象,這時候咱們要定位這個正在寫的文件,能夠選擇創建一個文件,好比test,而後用如下命令找出這個頻繁寫磁盤的文件(最好帶上一些限制大小的參數來精肯定位) touch new1 touch new2 find / -newer new1 -o -path "/proc" -prune 找出比new1新的文件,因爲/proc目錄中的文件一直在變化,因此能夠排除
6、使用type選項spa
一、在/etc目錄下查找全部的目錄 find /etc -type d | xargs file
二、在當前目錄下查找除目錄之外的全部類型的文件 find /etc ! -type d | xargs file
三、在/etc/目錄一下查找全部的符號連接文件 find /etc -type l | xargs file
8、使用size選項.net
dd if=/dev/zero of=/root/100M bs=100M count=1 dd if=/dev/zero of=/root/10M bs=10M count=1 dd if=/dev/zero of=/root/30M bs=30M count=1
一、查找當前目錄下大於5M的文件 find . -size +5M
二、查找當前目錄下大與20M的文件 find . -size +20M
三、查找當前目錄下大與40M的文件 find . -size +40M
Linux find 命令用法總結 http://www.linuxidc.com/Linux/2015-04/116854.htm
Linux下的文件查找命令——find http://www.linuxidc.com/Linux/2016-05/131826.htm
Linux下查找文件find命令 http://www.linuxidc.com/Linux/2014-10/108575.htm
文本查找利器find的使用 http://www.linuxidc.com/Linux/2014-03/97559.htm
功能強大的find命令 http://www.linuxidc.com/Linux/2014-01/95236.htm
Linux系統find命令詳解 http://www.linuxidc.com/Linux/2014-06/103232.htm
Linux文件搜索命令 find http://www.linuxidc.com/Linux/2016-11/137267.htm
5分鐘學會find命令 http://www.linuxidc.com/Linux/2016-11/137051.htm
find命令基本使用一覽 http://www.linuxidc.com/Linux/2016-07/133273.htm
Linux基礎知識:find命令的使用 http://www.linuxidc.com/Linux/2016-09/134947.htm