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這個...