linux檔案查詢 find命令

2022-05-27 09:33:18 字數 4026 閱讀 3183

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 |xargs

grep

"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命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可...