Linux之檔案查詢命令詳解

2021-08-28 16:39:41 字數 2879 閱讀 8558

查詢檔案

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

locate命令其實是"find -name"的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋乙個資料庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。

locate命令的使用例項:

$ locate /etc/sh

搜尋etc目錄下所有以sh開頭的檔案。

$ locate ~/m

搜尋使用者主目錄下,所有以m開頭的檔案。

$ locate -i ~/m

搜尋使用者主目錄下,所有以m開頭的檔案,並且忽略大小寫。

whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數-b)、man說明檔案(引數-m)和源**檔案(引數-s)。如果省略引數,則返回所有資訊。

whereis命令的使用例項:

$ whereis grep

Linux之檔案查詢命令

linux之檔案查詢本地檔案查詢 實際操作即檢索其資料庫檔案 var lib mlocate mlocate.db 資料庫檔案 updatedb 更新資料庫 locate options files i 忽略大小寫 n 只列舉前 個匹配專案 r 支援基本正規表示式 locate可實現根據使用者許可權...

linux 檔案查詢 find 命令詳解

linux下檔案查詢常用命令有locate和find命令。locate命令不是實時查詢,所以查詢的結果不精確,但查詢速度很快。因為它查詢的不是目錄,而是乙個資料庫 var lib locatedb 這個資料庫中含有本地所有檔案資訊。linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用lo...

Linux檔案查詢命令及find詳解

1 locate工具 2 find工具 1 特點 1 依賴資料庫 可以用update更新資料庫,但費時長,現實企業環境最好不用 2 非實時查詢,結果非精確 3 查詢速度快 4 模糊查詢 1 特點 1 實時查詢,查詢速度慢 2 精確匹配 2 find命令格式 find options 查詢路徑 查詢條...