Linux Find 命令的詳解與研究

2022-09-11 20:03:14 字數 2634 閱讀 8400

find命令用來在指定目錄下查詢檔案。linux下類似的查詢命令還有 which、locate、whereis。

區別:which查詢命令字所在的位置        eg.  which   ls

locate模糊匹配(只要是包含關鍵字的檔案都能查詢出來),不是實時的,基於資料庫查詢, updatedb 公升級 locate的資料庫,不公升級的話,一些新檔案可能找不到

由於基於資料庫查詢,所以速度特別快

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

find實時查詢、精確查詢、遍歷整個指定目錄中的檔案,速度很慢、支援多種查詢條件(屬主,屬組,許可權,檔名等)

語法: 

find  [ find_path ]  [ 條件 ]  [ 處理動作 ] ,中括號表示該選項可以不指定,有預設值

find_path: 如果不寫,預設在當前工作目錄查詢

條件:如果不寫,會查詢該路徑下所有的檔案

處理動作:預設列印到螢幕上  print

下面先介紹條件(匹配標準):

-name  file_name :  根據檔名進行查詢,區分大小寫

-iname  file_name : 根據檔名進行查詢,不區分大小寫

-regex  pattern   根據正規表示式的模式進行查詢        //不常用

-user                       通過屬主進行查詢

-group                    通過屬組進行查詢

-uid  uid                通過uid進行查詢     //  適用於 使用者刪除了,或者屬主是數字的情況

-gid   gid              通過gid進行查詢     // 使用者刪除了,下乙個新建的使用者預設繼承刪除使用者的檔案的擁有權

-nouser                 查詢屬主不是某使用者的檔案     查詢沒有屬主的檔案   // 比如刪除了使用者,檔案的屬主變成數字

-nogroup              查詢沒有屬組的檔案

-type       根據檔案型別進行查詢,下面是linux下各種檔案型別

-b  塊裝置

-c  字元裝置

-d  目錄

-f   普通檔案

-p  命名管道

-s   套接字檔案

-l    鏈結檔案

-size   根據檔案大小進行查詢      [ + | - ]     k  m  g      // k = kb, m=mb,g=gb,都是儲存大小的單位

-size   5k  精確匹配大小為5k的檔案

+         大於

-          小於

根據時間戳進行查詢  [ + | - ]

-mtime  時間單位為天               // stat  file_name    檢視檔案的時間戳

-atime: 時間單位為天

-ctime: 時間單位為天

-mmin: 時間單位為分鐘

-amin: 時間單位為分鐘

-cmin: 時間單位為分鐘

-perm    根據許可權查詢

-perm  mode

mode: 644 ,精確匹配   三位都要匹配

/mode:任意一位匹配即可              //  不是精確匹配,是檔案許可權的某一位包含mode裡面的任意一位即可

-mode: 檔案許可權能夠完全包含此mode時才能匹配   eg.  -644     則   644  744  655 都能匹配

條件組合:

-a  同時滿足多個條件 eg.   find  /tmp  -user  username   -a  -perm  644        // 相當於and

-o   滿足乙個條件即可                                             //  相當於 or

-not    不滿足條件的被查詢出來

查詢條件萬用字元

*  通配任意個數的任意字元

?  通配單個的任意字元            //  與擴充套件正則裡面的含義不一樣

然後介紹的是

處理動作 :  

-print :  預設動作,查詢結果列印到螢幕

-ls       以類似於  ls  -l   的形式顯示結果的資訊

-ok  command  {}  \;        執行動作時提示使用者是否執行 , {}代表檔名佔位符

-exec  command  {}  \;     執行動作時不提示使用者,直接執行

最後,這些並不是find的全部引數,但掌握上述的各種引數的用法也能滿足日常使用了

如果想深入了解,建議多用用man  find 來 檢視 官方幫助文件。

Linux find命令詳解

在linux上查詢某個檔案確實是一件比較麻煩的事情。畢竟在linux中需要我們使用專用的 查詢 命令來尋找在硬碟上的檔案。linux下的檔案表達格式非常複雜,不象windows,dos下都是統一的aaa.bbb格式那麼方便查詢,在windows中,只要知道要查詢的檔案的檔名或者字尾就非常容易查詢到。...

linux find命令詳解

pathname find命令所查詢 的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄 print find命令將匹配的檔案輸出到標準輸出 exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為 command 注意和 之間的空格。ok 和 exec的作用相同,...

Linux find命令詳解

用法總結如下 find pathname options print exec ok pathname 查詢路徑 option 主要選項如下 name 按照檔名稱查詢 perm 按照檔案許可權查詢 prune 不在當前指定的路徑查詢。如果同時指定了 depth選項,則prune被忽略 user 按照...