Linux下的find用法

2021-07-22 01:14:59 字數 3106 閱讀 1662

想一下我們為什麼要熟悉find命令呢?

whereis和locate都可以用來查詢,但是這兩個是通過資料庫來查因為沒有實際查詢硬碟所以相當快速,但是也會有其他問題

1)whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案,man說明檔案和源**檔案(省略引數時返回所有資訊)

2)whereis查詢的快是因為linux系統會將系統內所有檔案都記錄在乙個資料庫中,當使用whereis和locate時,會從資料庫中查詢資料,而不是像find那樣,通過遍歷硬碟來查詢。但是 資料庫檔案並不是實時更新,預設情況下一星期更新一次,因此用locate和whereis時有時會找到已經刪除的資料或剛剛建立的新檔案會找不到,所以雖然find速度慢,但是確實最有效的

1.按檔名查詢

如果你把這個檔案放在單個的資料夾裡面,只要使用常見的「ls」命令就能方便的查詢出來,那麼使用「find」命令也就沒什麼卵用。但如果知道了某個檔案的檔名,而忘記了放到哪個資料夾,甚至是層層套嵌的資料夾裡。舉例說明,假設你忘記了plugins這個檔案在系統的哪個目錄下,甚至在系統的某個地方也不知道,則這是可以使用

就是直接在find後面寫上 -name,表明要求系統按照檔名查詢,最後寫上目標檔名即可,然後便會顯示它的完整路徑。

2.無錯誤查詢技巧:

在linux系統中「find」命令是大多數系統使用者都可以使用的命令,並不是root系統管理員的專利。但當linux系統中系統管理員root把某些檔案目錄設定成禁止訪問模式。普通使用者就沒有許可權用「find」命令來查詢這些目錄或者檔案。當普通使用者使用「find」命令來查詢時會顯示」permissiondenied.」

為了避免這樣的錯誤,我們可是使用轉移錯誤提示的方法嘗試著查詢檔案,輸入 find / -name 檔名 2>/dev/null 這個方法是把查詢錯誤提示轉移到特定的目錄中去。/dev/null是乙個特殊的檔案,表明空的或者錯誤的資訊,這樣查詢到的錯誤資訊將被轉移了。

3.條件查詢

在linux系統下如果在整個硬碟中查詢某個檔案就要花費相當長的一段時間,特別是大型linux系統和容量較大的硬碟,檔案放在套嵌很深的目錄中的時候。但如果知道這個檔案存放在某個大的目錄中,可使用[find /大目錄名 -name 目標檔名] 就可以解決這個問題。

上面的命令就是表示在home目錄中查詢。「/ 」這個函式符號的含義,如果輸入 「find/ 」就是表示要求linux系統在整個root目錄下查詢檔案,也就是在整個硬碟上查詢檔案,而「find/home」就是只在 home目錄下查詢檔案,所以查詢的速度就相應要快很多了。

4.根據部分檔名查詢方法:這個方法和在windows中查詢已知的檔名方法是一樣的。。

根據檔案的特徵查詢方法:

(1).例如我們知道乙個linux檔案大小為1,500 bytes,則

$find / -size 1500c,字元 c 表明這個要查詢的檔案的以bytes為單位。

(2).不知道檔案大小

$find / -size +/-數字(+表示大於這個數字的;-表示小於這個數字大小的)c表示這個檔案以位元組為單位

5.與時間有關的引數 -atime -mtime -ctime

以-time為例說明

$ find -mtime n:n是數字,標記在n天之前的一天之內的被修改的檔案

+n:表

示在n天

之前(不

含n天本

身)被改

過的檔案

find -mtime -n :表示在n天之前(含n天本身)被改過的檔案

$find / -mtime 0 將過去系統上面24小時有改動的檔案列出(0代表目前事件,例如換成3就是三天前的24小時)

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

-uid n:n為數字,這個數字是使用者的帳號id,即uid

-gid n:n為數字,這個數字是使用者組的帳號id,即gid

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

-nouser:尋找檔案所有者不在/etc/passed 的人

-no group:尋找檔案所有使用者組不在/etc/passed 的人

7.與檔案許可權或名稱有關的引數

-type type:查詢檔案型別為b塊裝置檔案的

-perm mode :查詢檔案許可權剛好為mode的

-perm -mode:查詢檔案許可權,必需全部包含mode的

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

8.其他可進行操作

-exec comm 的:comma為其他命令,接其他命令來處理查詢到的結果

例如可加ls-l,不能加ll,這個命令不支援命令別名

-print:預設將結果列印到螢幕上的操作

linux下find的用法

find 命令 用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。用法 find 選項 引數 選項 amin 分鐘 查詢在指定時間曾被訪問過的檔案或目錄,單...

linux下的find命令用法

第一部分 根據檔名查詢 1 在當前目錄查詢名稱為test的所有檔案 find test 2 在主目錄下查詢名稱為test的所有檔案 find home name test 3 在主目錄下查詢test的所有檔案,且不分割槽大小寫 find home iname test 4 查詢名稱為test的所有目...

linux下find命令基本用法

一.基本用法 find name 檔名 find ver1.d ver2.d name c print 查詢ver1.d,ver2.d c檔案並列印 find type d print 從當前目錄查詢,僅查詢目錄,找到後,列印路徑名。可用於列印目錄結構。二.無錯誤查詢 find name acces...