Linux 檔案查詢

2022-07-24 03:51:13 字數 2334 閱讀 8753

檢視檔案型別:file

如果你想要知道某個檔案的基本資料,例如是屬於ascii或者是data檔案,或者是binary,且其中有沒有使用到動態函式庫等等的資訊,可以用file檢視

which (尋找「執行檔案」)

whereis (尋找特定檔案)

whereis是如何實先的呢,linux系統會將系統內的所有檔案都記錄在乙個資料庫檔案裡面,而當使用whereis或者是locate時,都會以此資料庫檔案

的內容為準,因為,有會你會發現使用這兩個執行檔案時,會找到已刪除的檔案,也切也找不到最新的剛才建立的檔案。因為這兩個命令是由資料庫

當中的結果去查詢檔案的所在。

locate尋找的資料是由已建立的資料庫/var/lib/mlocate/裡面的資料所查詢到的,所以不用直接在硬碟中訪問資料,是很快速。

那麼有什麼限制呢?就是因為它是經由資料庫來查詢的,而資料庫的建立預設是每天執行一次,所以當你建立檔案後查詢該檔案,那麼locate

會告訴你找不到。因為必須要更新資料庫。那能否手動更新資料庫嗎?當然可以,更新locate資料庫的方法非常簡單,直接輸入「updatedb」就可以了

updatedb命令會去讀取/etc/updatedb.conf這個配置檔案的設定,然後去硬碟裡面進行查詢檔案名的操作,最後就更新整個資料庫檔案了。因為updatedb

會去查詢硬碟,所以當你執行updatedb時,可能會等待數分鐘時間。

關於引數-n,如圖所示

+4 代表大於等於5天前的檔名

-4 代表小於等於4天內的檔名

4 則是代表4-5那一天的檔名

如果將系統裡面某個賬號刪除了,但是賬號已經在系統內建立了很多檔案時,就可能發生無主孤魂的檔案存在。此時可以用-nouser來找出該型別檔案。

-perm這個引數,他的重點在找出特殊許可權的檔案。suid與sgid都可以設定在二進位制程式上,假設想要將/bin 、/sbin這兩個目錄下只要有suid或者

sgid的檔案就列出來,你可以這樣做:

因為suid是4分,sgid是2分,總共6分,因此可用+6000來處理這個許可權。find後面可以接多個目錄進行查詢,另外find本來就會查詢子目錄。

範例把的例子以**來說明,如圖

{}代表的是「由find找到的內容」,如夯土,find的結果會被放置到{}位置中。

-exec一直到「\;」是關鍵字,代表find額外命令的開始(-exec)到結束(\;),在這中間就是find命令內的額外命令。在上例中就是「ls -l{}」

因為「;」在bash環境下有特殊意義,因此利用反斜槓來轉義。

如果要找的檔案是具有特殊屬性的,例如suid、檔案所有者、檔案大小等,那麼利用locate是沒有辦法找到。用find就很重要啦。

find還可以利用萬用字元來找檔名。比如想找/etc下面檔名包含httpd的檔案:

linux檔案查詢

命令與檔案的查詢 which 尋找執行檔案 which a command a 將所有由path目錄中可以找到的命令均列出來,而不只是第乙個被找到的命令名稱 eg which a ifconfig 檔案的查詢 whereis 尋找特定的檔案 bmsu 檔案或者目錄 引數 b 只尋找二進位制檔案 m ...

linux 檔案查詢

文字查詢 grep egrep fgrep 檔案查詢 locate find locate和find的區別 locate有自維護的資料庫 linux自建,與所有檔案關聯 每天linux會定時對其進行更新,而locate就在此資料庫中查詢,所以查詢速度非常快,但是缺點也很明顯,不能實時查詢 比如剛裝l...

Linux 檔案查詢

檔案查詢 簡介which 命令查詢 find 檔案查詢,針對檔名 locate 檔案查詢,依賴資料庫 一 命令檔案查詢 一 查詢ls 命令的位置 which ls 從path環境變數或者 whereis vim二 任意檔案 find 語法find path options expression ac...