Linux之find查詢命令

2022-08-02 02:27:17 字數 4837 閱讀 4871

linux中find常見用法示例

[root@localhost ~]# find  [path]  [option]  [action]

引數:1. 與時間有關的引數:共有-atime、-ctime與-mtime,以-mtime為例:

-mtime n:n為數字,意義為在n天之前的「一天之內」被更改過的檔案;

-mtime +n:列出在n天之前(不含n天本身)被更改過的檔名;

-mtime -n:列出在n天之內(含n天本身)被更改過的檔名;

-newer file:file為乙個存在的檔案,列出比file還要新的檔名。

+n代表大於等於n+1天前的檔名;

-n代表小於等於n天內的檔名;

n則是代表n~n+1那一天的檔名。

[root@localhost desktop]# find  /  -mtime  0

[root@localhost desktop]# find  /etc  -newer  /etc/passwd

2. 與使用者或使用者組名有關的引數:

-uid  n:n為數字,這個數字是使用者的賬號id,即uid。uid記錄在/etc/passwd中

-gid  n:n為數字,這個數字是使用者組名的id,即gid。gid記錄在/etc/group中

-user name:name為使用者帳號名稱

-group name:name為使用者組名稱

-nouser:尋找檔案的所有者不存在於/etc/passwd中的檔案

-nogroup:尋找檔案的所有使用者組不存在於/etc/group中的檔案

注:如果系統裡面某個賬號刪除了,該帳號在系統內已建立的檔案即使用-nouser來查詢。

[root@localhost desktop]# find  /home  -user  vurtne

[root@localhost desktop]# find  /  -nouser

3. 與檔案許可權及名稱有關的引數:

-name filename:查詢檔案名為filename的檔案

-size [+-]size:查詢比size還要大(+)或小(-)的檔案。

-type type:查詢檔案的型別為type的,型別主要有:

一般正規檔案(f),裝置檔案(b,c),目錄(d),

連線檔案(l),socket(s)及fifo(p)等屬性。

-perm mode:查詢檔案許可權「剛好等於mode許可權「的檔案

-perm -mode:查詢檔案許可權「必須要全部包括mode許可權「的檔案

-perm +mode:查詢檔案許可權」包含任一mode許可權「的檔案

[root@localhost desktop]# find  /var  -type s

[root@localhost desktop]# find  / -perm +7000

[root@localhost desktop]# find  /bin  /sbin  -perm +6000

4. 其他可進行的操作:

-exec command {} \:  #將查到的檔案執行command操作,

對每乙個找到的檔案執行command命令,並用檔案替換"{}",「\;」是固定的結束符。

-print:將結果列印到螢幕上

[root@localhost desktop]# find ./ -name '*.exe' -exec file {} \;  #找出當前資料夾下字尾是exe的檔案,

並用file命令顯示 每個檔案的檔案型別

-empty               #查詢系統中空白的檔案,或空白的檔案目錄,或目錄中沒有子目錄的資料夾

-false               #查詢系統中總是錯誤的檔案

-fstype type         #查詢系統中存在於指定檔案系統的檔案,例如:ext2 .

-gidn               #查詢系統中檔案數字組 id 為 n的檔案

-depth                    #使查詢在進入子目錄前先行查詢完本目錄

-fstype                   #查更改時間比f1新但比f2舊的檔案

-mount                    #查檔案時不跨越檔案系統mount點

-follow                   #如果遇到符號鏈結檔案,就跟蹤鏈結所指的檔案

-cpio                     #對匹配的檔案使用cpio命令,將他們備份到磁帶裝置中

-prune                    #忽略某個目錄

-ok 和 -exec相同,只不過在操作前要詢使用者

①通過檔名查詢法:

find / -name http.conf         在根目錄下查詢檔案「httpd.conf」,就會得到這個檔案的路徑

②根據部分檔名查詢法:

find /etc -name '*.conf'       在/etc目錄下查詢以".conf"結尾的檔案

③根據檔案特徵查詢:

如果只知道某個檔案的大小,修改日期等特徵也可以使用「find」命令查詢出來。

a.)  find / -size 1500c # 在根目錄下查詢大小為1500bytes的檔案,字元c表明這個要查詢的檔案

大小以bytes為單位。

b.)  find / -size +100c # 在根目錄下查詢大小超過100bytes的檔案,命令中的「+」是表示要

求系統只列出大於指定大小的檔案,而使用「-」則表示要求系統列出小

於指定大小的檔案。

c.) find / -amin -10     # 查詢在系統中最後10分鐘訪問的檔案

d.) find / -atime -2     # 查詢在系統中最後48小時訪問的檔案

e.) find / -empty        # 查詢在系統中為空的檔案或者資料夾

f.) find / -group cat    # 查詢在系統中屬於組cat的檔案

g.) find / -mmin -5      # 查詢在系統中最後5分鐘裡修改過的檔案

h.) find / -mtime -1     # 查詢在系統中最後24小時裡修改過的檔案

i.) find / -nouser       # 查詢在系統中屬於作廢使用者的檔案

j.) find / -user fred    # 查詢在系統中屬於fred這個使用者的檔案

find命令也提供給使用者一些特有的選項來控制查詢操作。下面是一些最基本,最常用的find命令的控制選項及其用法。

-daystart      # 測試系統從今天開始24小時以內的檔案,用法類似-amin

-depth         # 使用深度級別的查詢過程方式,在某層指定目錄中優先查詢檔案內容

-follow        # 遵循萬用字元鏈結方式查詢; 另外,也可忽略萬用字元鏈結方式查詢

-help          # 顯示命令摘要

-mount         # 不在檔案系統目錄中查詢, 用法類似 -xdev.

-noleaf        # 禁止在非unux檔案系統,ms-dos系統,cd-rom檔案系統中進行最優化查詢

-version       # 列印版本數字

-maxdepth levels     # 在某個層次的目錄中按照遞減方法查詢,限制find命令在目錄中按照遞減方

式查詢檔案的時候搜尋檔案超過某個級別或者搜尋過多的目錄,這樣導致查詢

速度變慢,查詢花費的時間過多。

find . -maxdepth 2 -name fred      # 限制find只能查詢兩層目錄下的檔案

④使用混合查詢方式查詢檔案:

通過"-and"把兩個查詢選項鏈結起來組合成乙個混合的查詢方式,在/tmp目錄中查詢大於100000000

位元組並且在48小時內修改的某個檔案。

find /tmp -size +10000000c -and -mtime +2

通過"-or"把兩個查詢選項鏈結起來組合成乙個混合的查詢方式,在/目錄中查詢屬於fred使用者或者

george使用者的檔案。

find / -user fred -or -user george 

find /tmp ! -user panda         # 在/tmp目錄中查詢所有不屬於panda的檔案

find /tmp/ -ctime +7 -delete         # 刪除/tmp目錄下一周以前建立的檔案

⑤查詢並顯示檔案資訊的方法:

⑥無錯誤查詢:

find / -name access_log 2>/dev/null

這個方法是把查詢錯誤提示轉移到特定的目錄中。系統執行這個命令後,遇到錯誤的資訊就直接輸

送到stderrstream 2中,access_log 2 就是表明系統將把錯誤資訊輸送到stderrstream 2

中,/dev/null是乙個特殊的檔案,表明空的或者錯誤的資訊,這樣查詢到的錯誤資訊將被轉移了,

不會再顯示了。

Linux 檔案查詢之 find 命令

對linux新手來說查詢檔案簡直是一大災難,現做乙個簡單的小結。通過完整檔名查詢 find 目錄 name 檔名 通過部分檔名查詢 find 目錄 name 引號 星號 我們還可以根據檔案大小 修改日期等檔案的特徵進行查詢 find size 1500c 指定系統在根目錄中查詢出1500位元組的檔案...

Linux檔案查詢之find命令

一 語法格式 find 路徑 選項 操作 二 選項 name 根據檔名查詢 find etc name conf iname i忽略檔名大小寫 ignore perm 根據檔案許可權查詢 find perm 777 prune 可以排除某些查詢目錄 user 根據檔案屬主查詢 group 根據檔案屬...

linux查詢命令find

在當前目前下查詢檔案 test.txt find name test.txt在 home 目錄下查詢test.txt find home name test.txt在整個系統中查詢nginx檔案或目錄 find name nginx在整個目錄下查詢名稱包含nginx的檔案 find type f n...