1、find命令的格式;
find pathname -options [-print -exec -ok ...] {}\
2、find命令的引數;
pathname: find命令所查詢的目錄路徑。例如用「.」來表示當前目錄,用「/」來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' ;,注意和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。
3、find命令的選項:
-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。
-name:按照檔名查詢
-perm:按照檔案許可權來查詢
-prune:可用使find命令不在當前制定的目錄中查詢,如果同時使用-depth選項,那麼-prune將被find忽略
-user:按照檔案屬主查詢
-group:按照檔案屬組查詢
-nouser:查詢無有效屬主的檔案
-nogroup:查詢無有效屬組的檔案
-newer file1 file2:查詢更改時間比file1新,但是比file2舊的檔案
-type:查詢某一型別的檔案,諸如:f-普通檔案、d-目錄、c-字元檔案、b-塊裝置、p-管道檔案、l-符號連線
-size:[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計
-fstype:查詢屬於某一型別檔案系統的檔案
-mount:查詢檔案時不跨越檔案系統mount點
-follow:如果find命令遇到符號連線檔案,就跟蹤至連線所指向的檔案
-cpio:對匹配的檔案使用cpio命令,將檔案備份到磁帶裝置中
-mtime -n +n:按照檔案的修改時間來查詢,-n檔案更改時間距現在n天以內,+n檔案更改時間距現在n天以前
-amin n:查詢系統中最後n分鐘訪問的檔案
-atime n:查詢系統中最後n*24小時訪問的檔案
-cmin n:查詢系統中最後n分鐘被改變檔案狀態的檔案
-ctime n:查詢系統中最後n*24分鐘被改變檔案狀態的檔案
-mmin n:查詢系統中最後n分鐘被改變檔案資料的檔案
-mtime n:查詢系統中最後n*24小時被改變檔案資料的檔案
4、使用示例:
1)查詢指定時間內修改過的檔案:(查詢48小時內修改過的檔案)
[root@bogon ~]# find -atime -2../.bash_profile
2)根據關鍵字查詢:(查詢當前目錄以.log結尾的檔案)
[root@bogon log]# find . -name "*.log
"./audit/audit.log
./tuned/tuned.log
3)根據檔案許可權查詢:(查詢/tmp目錄下許可權為755的檔案)
[root@bogon ~]# find /tmp -perm 755
4)根據檔案型別查詢:
[root@bogon ~]# find . -type d -print ##查詢當前目錄下的目錄../data
[root@bogon ~]# find . ! -type d -print ##查詢當前目錄下的非目錄
./.bash_logout
./.bash_profile
5)根據檔案大小查詢:(查詢當前目錄下大於1k的檔案)
[root@bogon ~]# find -size +1000c -print../anaconda-ks.cfg
./.bash_history
6)根據檔名查詢
[root@bogon ~]# find . -name "*.txt
"./test.txt
5、使用exec或ok來執行shell命令:
只要把想要的操作寫在乙個檔案裡,就可以用exec來配合find命令查詢
1)顯示當前目錄下面所有大於10k的檔案,exec後面執行了乙個命令,{}代表檔名
[root@bogon ~]# find . -type f -size +10k -exec ls -l {} \;-rw-r--r--. 1 root root 12288 may 4 17:22 ./.test.txt.swp
-rw-------. 1 root root 40960 may 4 17:25 ./.swp
2)查詢/tmp下10天前的檔案,刪除
[root@bogon ~]# find /tmp -type f -mtime +10 -ok rm {} \;
3)備份配置檔案,新增.bak副檔名
4)查詢主目錄下被其他使用者寫入的檔案
[root@bogon ~]# find ~ -perm -002 -exec chmod o-w {} \;
6、-print 匹配條件:
簡寫表示式按順序求值, -a 和 -o 都是短路求值。
1)忽略某個目錄(在httpd目錄下查詢檔案但不希望在/httpd/conf目錄下查詢)
2)匹配多個條件,採用or條件操作
7、xargs命令:
有些命令不能接受過多引數,此時命令執行可能會失敗,錯誤資訊通常是「引數列太長」或「引數列溢位」,這就是xargs命令的用處所在
find | xargs command
示例:在當前目錄下所以普通檔案中過濾「nologin」這個詞
[root@bogon ~]# find . -type f -print |xargsgrep
"nologin
"binary
file ./.test.txt.swp matches
./test.txt:x:1:1:bin:/bin:/sbin/nologin
./test.txt:on:x:2:2:daemon:/sbin:/sbin/nologin
8、locate命令:
查詢系統上預建的檔案索引資料庫,依賴於先構建索引,構建過程需要遍歷整個根檔案系統,極消耗資源。
工作特點:查詢速度快,模糊查詢,非實時查詢。
-i 執行區分大小寫的搜尋
-n x 只列舉前x個匹配選項
linux檔案查詢find命令
1.locate 與 find命令的區別 locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要乙個資料庫,這個資料庫由每天的例行工作 crontab 程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。即先執行 updatedb 無論在那個目錄中均可,可以放在cront...
Linux檔案查詢find命令
作用 實時查詢工具,通過遍歷指定路徑完成問件查詢,遞迴地在層次目錄中處理檔案 find搜尋目錄樹上的每乙個檔名,它從左至右運算給定的表示式,按照優先規則進行匹配,直到得出結果 左邊運算在 與 操作中得出假,在 或 操作中得出真 然後 find移向下乙個檔名。第乙個以 或 這些字元起始的引數是表示式的...
Linux檔案查詢命令find
關於find命令 由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統 nfs find命令在該檔案系統中同樣有效,只你具有相應的許可權。在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可...