find命令使用方法

2021-09-20 17:16:53 字數 2623 閱讀 5839

find:通過遍歷指定的目標目錄,實時查詢符合指定屬性的檔案

優點:精確匹配進行查詢

缺點:速度略慢

用法:

find [option] [查詢路徑] [查詢條件] [處理動作] 

查詢路徑:預設為當前路徑

查詢條件:預設為指定路徑下的所有檔案

處理動作:預設是在螢幕顯示出來

查詢條件:

-name:查詢時區別檔案大小寫,支援glob

*,?,,[^]

-iname:查詢時不區分檔案大小寫  

-user username:根據檔案屬主查詢

-group username:根據檔案屬組查詢

-uid uid:根據指定的uid查詢

當原有的使用者被刪除時,他之前所建立的檔案的屬主屬組,變成他之前帳號的uig和gid

-gid gid:根據指定的gid查詢

-nouser:查詢沒有屬主的檔案

-nogroup:查詢沒有屬組的檔案

-type type:根據檔案型別查詢

-size type:根據檔案大小查詢

-atime [+|-]#:最近幾天訪問過的檔案

-mtime[+|-]#: 最近幾天修改過的檔案

-ctime[+|-]#: 最近幾天改變的檔案

-amin[+|-]#:  最近幾分鐘內訪問過的檔案

-mmin[+|-]#:  最近幾分鐘內修改過的檔案

-cmin[+|-]#:  最近幾分鐘內改變過的檔案

-perm [+|-]mode:根據許可權查詢

-maxdepth:    查詢最在深度,例:-maxdepth 1表示只在當前目錄下找,而不去找當前目錄下的目錄

-mindepth:    查詢最小深度

組合查詢條件:

-o:或者

!, -not:非

根據檔案型別查詢

-type type:

f:普通檔案

d:目錄檔案

l:符號鏈結檔案

b:塊裝置

c:字元設定檔案

p:命令名管道

s:表示套接字檔案

根據檔案大小查詢

常用單位:k,m,g

+;大於

-;小於

什麼都不帶表示為精確的大小

#unit:表示 #-1< x <=# 以2k為例;2-1< x <=2 查詢的是0大於1k和小於等於2k的所有檔案都符合

-#unit:x <= #-1  以2k為例:x <= 2-1查詢的是小於等於1k的所有檔案

根據時間戳查詢:

以「天」為單位:

# <= x < #+1

比如想要查詢3天前訪問的檔案 -atime 3

輸出的結果應該為大於等於3天,小於4天的內容 

-#: x < #

+#:x >= #+1

以「分鐘」為單位:

根據許可權查詢:

-perm [+|-]mode:

mode:精確匹配許可權

例:find ./ -perm 755   #查詢指定許可權為755的檔案

/mode(在centos6,7上面用/號,表示+號):任何一類使用者的許可權只要包含對其指定的任何一位許可權即可

例:600許可權   隨便匹配一類就可以,要麼屬主是6,要麼屬組是0,要麼其它是0,都匹配

-mode:每一類使用者的許可權都包含對其指定的所有許可權,與許可權

例:找到字尾為txt的檔案,並且具有執行的檔案(u,g,o任意乙個具有x的都可以)

#find ./ -name "*.txt" -a -perm /a+x

找到後的處理操作:

-print:預設動作,列印至螢幕

-delete:刪除查詢到的檔案

-ls:顯示找到的檔案的詳細屬性

-fls /path/to/somewhere:查詢到的所有檔案的長格式資訊儲存至指定檔案中;

-exec command {} \;執行其它的操作,沒有互動,直接進行操作

{}:表示找到的檔名

{}:用於引用查詢到的檔名稱自身

-ok command {} \;對查詢到的每個檔案執行由command指定的命令;在執行命令前會進行互動式提示

例:find ./ -name "*.txt" -a -perm /u+x -ok rm -rf {} \;(在執行命令前進行提示)

注意:find命令會一次性找到所有符合條件的檔案,並一同傳遞給後面的命令,如果後面的命令不能接收較長的引數時,會報錯;解決辦法用xargs命令一條一條的傳遞給command,而不同時傳遞

用法例項:

例1:同時查詢2個檔案

find ./ -name "3.log" -o -name "4.log"

例2:同時排除2個檔案

find ./ ! \( -name "3.log" -o -name "4.log" \)

find ./ ! -name "3.log" -a ! -name "4.log"

weilovepan520

linux中find命令使用方法

基本格式 find path expression find name httpd.conf 在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢 find etc name httpd.conf 在 etc目錄下檔案httpd.conf find etc name srm 使用萬用字元 0或...

find命令詳解及使用方法

linux find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。語法 find path option print exec ok command...

linux中find命令使用方法

一.find命令 基本格式 find path expression 1.按照檔名查詢 1 find name httpd.conf 在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢 2 find etc name httpd.conf 在 etc目錄下檔案httpd.conf 3 fin...