檢視檔案型別: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...