linux下怎麼查詢檔案

2022-04-05 10:06:03 字數 2306 閱讀 4790

linux下通常用whereis或者是locate來檢查檔案,如果實在找不到,才使用find。為什麼find不能作為優先考慮的命令?

因為whereis與locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較省時間。

whereis [-bmsu] 檔案或目錄名

-b :只找二進位制格式的檔案

-m :只找在說明檔案manual路徑下的檔案

-s :只找source原始檔

-u :查詢不在上述三個選項中的其他特殊檔案

find是很強大的命令,但是花費的時間很多,因為find是直接查詢硬碟。

而whereis和locate快速是因為linux系統將系統內的所有檔案都記錄在乙個資料庫檔案裡面,這兩個命令會以此資料庫檔案的內容為準,因此,有時你還會發現使用這兩個執行檔案時會找到已刪除的檔案,而找不到新建立的檔案。

locate [-ir] keyword

-i :忽略大小寫的差異

-r :後面可接正規表示式的顯示方式

資料庫的建立預設是每天執行一次,所以當你新建檔案後查詢該檔案時,locate會告訴你找不到,我們可以更新資料庫。使用updatedb命令。

updatedb命令回去讀取/etc/updatedb.conf這個配置檔案,並更新/var/lib/mlocate內的資料庫檔案

find [path] [option] [action]

引數:1.與事件有關的引數:共有 -atime -ctime -mtime

-mtime n : n為數字,意義為在n天之前的"

一天之內

"被更改過的檔案;

-mtime +n:列出n天前(不包含n天本身)被更改過的檔名;

-mtime -n:列出n天之內(包含n天本身)被更改過的檔名;

-newer file :file為乙個存在的檔案,列出比file還要新的檔名

範例:

find / -mtime 00代表當前時間,所以從現在開始的24小時前,有改動過內容的檔案都會被列出來。

若要求列出3天前的24小時內改動的檔案呢

find / -mtime 3

find /etc -newer /etc/passwd

-newer用來分辨兩個檔案之間的新舊關係

2.find命令-與使用者或使用者組有關的引數

-uid n:n為數字,uid,

-gid n:n為數字,gid,

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

-group name:name為使用者組名

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

-nogroup:尋找檔案的所有使用者組不存在於/etc/group中的檔案

當你自行安裝軟體時,很可能該軟體的屬性當中並沒有檔案所有者,此時可以用上面兩個引數進行查詢

3.find命令-與檔案許可權及名稱有關的引數

-name filename:查詢檔案名為filename的檔案

-size [+-]size:查詢比size還要大(+)或小(-)的檔案,這個size的規格有:c代表byte,k代表1024bytes .

找比50kb還要大的檔案,就是

"-size +50k

"-type type:查詢檔案的型別為type的,型別主要有:一般正規檔案(f)、裝置檔案(b,c),目錄(d),連線檔案(l),socket(s),以及fifo(p)屬性

-perm mode:查詢檔案許可權"

剛好等於

"mode的檔案,這個mode為類似的chmod的屬性值,舉例來說,-rwsr-xr-x的屬性為4755

-perm -mode :查詢檔案權"

必須要全部包含mode的許可權

"的檔案,舉例來說,我們查詢許可權為0744 的檔案時,4755的檔案也會被查詢出來

-perm +mode :查詢檔案時,"

包含任一mode的許可權

"的檔案,舉例來說,我們查詢0755時,0600的檔案也會被查詢出來

4.find命令-其他可行的操作

-exec command : command為其他命令,-exec後面可接其他命令來處理查詢的結果

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

範例說明:

find / -perm +7000 -exec ls -l {} \;

該範例中{}代表

"由find找到的內容

"因為;在bash環境下有特殊意義,所以此處用反斜槓\轉義

Linux下查詢檔案

linux下查詢檔案真是太不方便了,因為我不會這些命令,學了幾個,用著還行 find是乙個非常有效的工具,它可以遍歷當前目錄甚至於整個檔案系統來查詢某些檔案或目錄.主要選項 name 按照檔名查詢檔案 perm 按照檔案許可權來查詢檔案 prune 不在當前指定的目錄中查詢 user 按照檔案屬主來...

linux下查詢檔案原理

linux系統的檔名格式和unix系統的檔名格式一樣,其中的目錄名用斜槓 分隔。例如,檔案 名 home vmail test,其中 home和 vmail是目錄名,test則是檔名。linux系統中的檔名可以由任何可列印的字元組 成,也可以是任何的長度。系統通過分析目錄中的檔案,來查詢檔案對應的索...

在Linux下查詢檔案

因為要裝pl sql所以要查詢tnsnames.ora檔案。看看怎麼查這個檔案在linux下的哪個目錄 find name tnsnames.ora 查到 還可以用locate 來查詢 locate tnsnames.ora 結果是 一.通過檔名查詢法 舉例說明,假設你忘記了httpd.conf這個...