Linux中 find查詢命令用法詳解

2022-09-26 15:39:22 字數 2951 閱讀 1693

linux下查詢檔案的命令有兩個,分別是locate 和 find。

locate指令和find找尋檔案的功能類似,但locate是透過update程式將硬碟中的所有檔案和目錄資料先建立乙個索引資料庫,在 執行loacte時直接找該索引,查詢速度會較快,索引資料庫一般是由作業系統管理,但也可以直接下達update強迫系統立即修改索引資料庫。簡單介紹下它的兩個選項。

#locate 

-i        //查詢檔案的時候不區分大小寫 比如:locate  –i   passwd

-n       //只顯示查詢結果的前n行     比如:locate  -n  5   passwd

linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。linux下find命令提供了相當多的查詢條件,功能很強大。由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統( nfs),find命令在該檔案系統中同樣有效,只你具有相應的許可權。 在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可能會花費很長的時間(這裡是指30g位元組以上的檔案系統)。

find使用格式 : find [指定查詢目錄] [查詢規則] [查詢完後執行的action]

find在不指定查詢目錄的情況下是對整個系統進行遍歷查詢

find命令詳解

查詢檔案

find ./ -type f

查詢目錄

find ./ -type d

查詢名字為test的檔案或目錄

find ./ -name test

查詢名字符合正規表示式的檔案,注意前面的『.*'(查詢到的檔案帶有目錄)

find ./ -regex .*so.*\.gz

查詢目錄並列出目錄下的檔案(為找到的每乙個目錄單獨執行ls命令,沒有選項-print時檔案列表前一行不會顯示目錄名稱)

find ./ -type d -print -exec ls {} \;

查詢目錄並列出目錄下的檔案(為找到的每乙個目錄單獨執行ls命令,執行命令前需要確認)

find ./ -type d -ok ls {} \;

查詢目錄並列出目錄下的檔案(將找到的目程式設計客棧錄新增到ls命令後一次執行,引數過長時會分多次執行)

find ./ -type d -exec ls {} +

查詢檔案名匹配*.c的檔案

find ./ -name \*.c

列印test檔名後,列印test檔案的內容

find ./ -name test -print -exec cat \;

不列印test檔名,只列印test檔案的內容

find ./ -name test -exec cat {} \;

查詢檔案更新日時在距現在時刻二天以內的檔案

find ./ -mtime -2

查詢檔案更新日時在距現在時刻二天以上的檔案

find ./ -mtime +2

查詢檔案更新日時在距現在時刻一天以上二天以內的檔案

find . -mtime 2

查詢檔案更新日時在距現在時刻二分以內的檔案

find ./ -mmin -2

查詢檔案更新日時在距現在時刻二分以上的檔案

find ./ -mmin +2

查詢檔案更新日時在距現在時刻一分以上二分以內的檔案

find ./ -m程式設計客棧min 2

查詢檔案更新時間比檔案abc的內容更新時間新的檔案

find ./ -newer abc

查詢檔案訪問時間比檔案abc的內容更新時間新的檔案

find ./ -anewer abc

查詢空檔案或空目錄

find ./ -empty

查詢空檔案並刪除

find ./ -empty -type f -print -delete

查詢許可權為644的檔案或目錄(需完全符合)

find ./ -perm 664

查詢使用者/組許可權為讀寫,其他使用者許可權為讀(其他許可權不限)的檔案或目錄

find ./ -perm -664

查詢使用者有寫許可權或者組使用者有寫許可權的檔案或目錄

find ./ -perm /220

find ./ -perm /u+w,g+w

find ./ -perm /u=w,g=w

查詢所有者許可權有讀許可權的目錄或檔案

find ./ -perm -u=r

查詢使用者組許可權有讀許可權的目錄或檔案

find ./ -perm -g=r

查詢其它使用者許可權有讀許可權的目錄或檔案

find ./ -perm -o=r

查詢所有者為lzj的檔案或目錄

find ./ -user lzj

查詢組名為gname的檔案或目錄

find ./ -group gname

查詢檔案的使用者id不存在的檔案

find ./ -nouser

查詢檔案的組id不存在的檔案

find ./ -nogroup

查詢有執行許可權但沒有可讀許可權的檔案

find ./ -executable \! -readable

查詢檔案size小於10個位元組的檔案或目錄

find ./ -size -10c

查詢檔案size等於10個位元組的檔案或目錄

find ./ -size 10c

查詢檔案size大於10個位元組的檔案或目錄

find ./ -size +10c

查詢檔案size小於10k的檔案或目錄

find ./ -size -10k

查詢檔案size小於10m的檔案或目錄

find ./ -size -10m

查詢檔案size小於10g的檔案或目錄

find ./ -size -10g

本文標題: linux中 find查詢命令用法詳解

本文位址: os/linux/183896.html

linux下用find命令查詢

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

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

Linux命令 find 查詢命令

help引數,查詢命令引數 find help 命令格式 find h l p olevel d help tree search stat rates opt exec path expression 這樣的說法你能看的懂嗎?反正我是看不懂。於是乎使用 man find命令,得到各引數更詳細的解釋...