linux find命令的使用

2022-06-17 07:54:15 字數 2426 閱讀 8095

簡介

在檔案系統上查詢符合條件的檔案的過程 ;linux find 命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則 find 命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。

一、命令工具

locate:非實時查詢工具,依賴於系統在較空閒時自動構建的索引資料庫查詢。優點:按索引查詢,速度更快;缺點:索引資料庫的構建並非是根據檔案的修改實時更新。所以,查詢的資訊是過期的,只能夠模糊查詢;find:實時查詢;find查詢需要遍歷整個預設或指定的目錄,能夠做到精確查詢,查詢速度卻很慢。

二、find使用說明

find [option]... [查詢路徑] [查詢條件] [處理動作]查詢路徑:預設為當前路徑查詢條件:根據option指定查詢標準,具體條件可以使用正規表示式匹配處理動作:對符合條件的檔案作出的動作;預設為輸出到螢幕

三、option和查詢條件:

1、根據檔名查詢:

-name filename 可使用正則匹配

-inamefilename 不區分字元大小寫

-regex "pattern" 匹配整個檔案路徑字串,而不僅僅是檔名

2、根據檔案型別查詢:

-type f|b|d|l|c|s

f:普通檔案

b:塊檔案c:字元檔案

s:socket 套接字檔案

3、根據屬主,屬組查詢

-nouser 查詢沒有屬主的檔案

-nogroup 查詢沒有屬組的檔案

-user username 查詢屬主為username的檔案

-group groupname 查詢屬組為groupname的檔案

-uid uid-gid gid

4、根據檔案大小查詢

-size [+|-] #

單位:k,m,g

#(#-1,#] #-1 < filesize <= #

+# (#,+oo) # < filesize

-# [0,#-1) 0 <= filesize < #-1

5、根據時間戳

單位為」天「

-atime accessed時間戳

-mtime modified時間戳 修改內容

-ctime changed時間戳 修改內容,屬性

單位為」分「

-amin

-mmin

-cmin

#[#,#+1) 第 #天 # <= file[a|m|c]time < #+1

+# [#+1,+oo] #天前 #+1 <= file[a|m|c]time

-# [0,#) #天內 0 <= file[a|m|c]time < #

註解:#為當前時間減去檔案時間戳的時間

6、根據許可權

-perm mode :搜尋檔案許可權『剛好等於』 mode 的檔案,這個 mode 為類似 chmod的屬性值,舉例來說, -rwsr-xr-x 的屬性為 4755 !

-perm -mode :搜尋檔案許可權『必須要全部囊括 mode 的許可權』的檔案,舉例來說,www.linuxidc.com我們要搜尋 -rwxr--r-- ,亦即 0744 的檔案,使用 -perm -0744,當乙個檔案的許可權為 -rwsr-xr-x ,亦即 4755 時,也會被列出來,因為 -rwsr-xr-x 的屬性已經囊括了 -rwxr--r-- 的屬性了。

-perm /mode :搜尋檔案許可權『包含任一 mode 的許可權』的檔案,舉例來說,我們搜尋-rwxr-xr-x ,亦即 -perm /755 時,但乙個檔案屬性為 -rw-------也會被列出來,因為他有 -rw.... 的屬性存在!

7、組合查詢

與:-a and

或:-o or

非:-not !

公式:

!a -o !b = !(a -a b)

!a -a !b = !(a -o b)

處理動作

-print: 預設處理動作

-ls:類似於對查詢到的每個檔案做"ls -l"的操作;

-delete: 刪除查詢到的檔案;

-fls /path/to/somefile:查詢到的檔案的詳細路徑資訊儲存至指定檔案中;

-ok command {} ;

對每個檔案執行指定的命令之前需要使用者事先確認;

-exec command {} ;

無需使用者確認;

linux find命令使用

語 法 find 選項 引數 find 指定查詢目錄 查詢規則 查詢完後執行的 action find指令在指定目錄下查詢檔案。find指令還能夠對查詢到的檔案執行指定的操作,這種功能是通過呼叫其他linux指令來實現的。使用find指令時必須指定乙個查詢的起始目錄,find指令將從指定目錄向下遞迴...

Linux find命令使用

1 查詢 var logs目錄中更改時間在7天前的普通檔案 2 在當前目錄下查詢檔案內容包含main的檔案 二進位制檔案 test 匹配.test.c int main root kevin opt d00148588 3 把查到的結果輸出到檔案中 root kevin opt d00148588 ...

Linux find 命令使用示例

按名字查詢 1.查詢home目錄及其子目錄的 txt 檔案 find name txt print 2.查詢當前目錄及其子目錄的 txt 檔案 find name txt print 3.查詢以大寫字母開頭的檔案 find name a z print 按檔案許可權相位查詢 1.查詢許可權為755的...