檔案查詢工具

2021-08-19 21:41:05 字數 2311 閱讀 4510

如何在檔案系統上查詢符合條件的檔案?

實現工具: find , locate

實時查詢:find

非實時查詢(資料庫查詢):locate

find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。

如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。

並且將查詢到的子目錄和檔案全部進行顯示。

工作特點:

find的使用方法

語法:find 選項 引數

選項:

-name 按照檔名查詢檔案。

-perm 按照檔案許可權來查詢檔案。

-user 按照檔案屬主來查詢檔案。

-group 按照檔案所屬的組來查詢檔案。

-nogroup 查詢無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。

-nouser 查詢無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。

-newer file1 ! file2 查詢更改時間比檔案file1新但比檔案file2舊的檔案。

-type 查詢某一型別的檔案,諸如:

b - 塊裝置檔案。

d - 目錄。

c - 字元裝置檔案。

p - 管道檔案。

l - 符號鏈結檔案。

f - 普通檔案。

s - socket檔案

-size n[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。

-depth 在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。

-maxdepth 查詢最大目錄層數 如 1,即只查詢一層目錄

-mount 在查詢檔案時不跨越檔案系統mount點。

-follow 如果find命令遇到符號鏈結檔案,就跟蹤至鏈結所指向的檔案。

-cpio 對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。

引數: [查詢路徑] [查詢條件] [處理動作]

查詢路徑:指定具體目標路徑;預設為當前目錄

查詢條件:指定的查詢標準,可以檔名、大小、型別、許可權等標準進行;預設為找出指定路徑下的所有檔案

處理動作:對符合條件的檔案做操作,預設輸出至螢幕

例項: # 列出當前目錄及子目錄下所有檔案和資料夾

# find .

# 在/home目錄下查詢以.txt結尾的檔名,忽略大小寫

# find /home -iname "*.txt"

# 當前目錄及子目錄下查詢所有以.txt和.pdf結尾的檔案

# find . \( -name "*.txt" -o -name "*.pdf" \)

# 根據檔案型別進行搜尋

# find . -type f、l、d、c、b、s、p

# 根據檔案時間戳進行搜尋

# find . -type f 時間戳

# 搜尋最近七天內被訪問過的所有檔案

# find . -type f -atime -7

locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,

而是搜尋乙個資料 庫/var/lib/locatedb,這個資料庫中含有本地所有檔案資訊。

linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。

為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。

工作特點:

locate使用方法

語法:locate 選項 引數

選項: -i # 不區分大小寫的搜尋

-n n # 只列舉前n個匹配專案

-r # 使用正規表示式

-d《目錄》 # 指定資料庫所在的目錄;

-u # 更新slocate資料庫;

引數:查詢字串:要查詢的檔名中含有的字串。

例項: # locate /etc/sh # 搜尋etc目錄下所有以sh開頭的檔案:

# locate ~/m # 搜尋使用者主目錄下,所有以m開頭的檔案:

# locate -i ~/m # 搜尋使用者主目錄下,所有以m開頭的檔案,並且忽略大小寫:

# locate -r 『\.conf$』 # 使用regex來搜尋以「.conf」結尾的檔案

檔案的查詢工具find

有的時候我們需要快速查詢一些檔案,但是我們卻不知道這個檔案在哪的時候,就急切的需要乙個工具來幫助我們,這時候find就誕生了。find能實現精確查詢,雖然速度略慢,但是並不妨礙我們使用,下面就介紹一下find的使用方法。基於時間戳的查詢 假如需要檢視七天前的檔案,但是總不能一一的去看時間查詢,這點和...

檔案查詢工具 locate和find

locate命令主要依賴於事先構建好的索引庫。索引庫中收集了系統中所有檔案的路徑資訊。索引庫一般通過系統的週期性任務實現自動更新,也可使用updatedb命令進行手動更新。更新索引庫是乙個很消耗系統資源的操作,一般在系統空閒時進行。locate在進行檔案查詢時,根據給出的指定字串,在索引庫中進行查詢...

Linux系統中檔案查詢工具

檔案查詢工具 檔案查詢工具 grep,egrep fgrep 下面主要介紹 grep和sed命令 行首錨定符 pattern 行尾錨定符 詞首錨定符 加上引號單雙都行 pattern 詞尾錨定符 匹配任意單個字元 不匹配回車符 匹配此前的字元 0 到任意次 匹配任意長度的任意字元 正規表示式工作在貪...