Linux命令--其他文件搜索命令

文件搜索除了find還有幾個命令

find是在你需要索引的範圍查找,是在硬盤查找,速度太慢

有個快速查找命令

locate:

命令所在路徑:/usr/bin/locate

執行權限:所用用戶

功能描述:在文件資料庫中查找文件

範例:$local init


而locate是在文件資料庫中查找,文件資料庫會定期更新,找不是在硬盤找,而是在資料庫中查找。速度非常快。

(這裏我想到之前學過的I/O複用,select和epoll的使用效率,當使用select時和find一樣,當你朋友來你宿舍找你並不知道你住在哪裏,這時候宿舍阿姨就會帶你到宿舍區一個 房間一個房間查找。而epoll和locate一樣,宿舍大媽先有一個記錄本記錄了同學住的房間號,然後直接在記錄本上查找號,便可直接找到同學)


locate文件資料庫存放地址:


但是如果沒有更新的話,用locate不能查到

新建一個文件hpyhaha,由於資料庫沒有更新,所以用locate不能查到,但是用find便可以查到


不過我們可以用updatedb更新數據庫

但是如果新建一個文件放在tmp目錄下,即使用updatedb後也無法找到文件,因爲不在locate範圍內,所以locate經常用於系統文件的查找。



locate -i  文件名:

-i:表示不區分大小寫


which:

命令所在路徑:/usr/bin/which

執行權限:所有用戶

功能描述:搜索命令所在目錄及別名信息

範例:$ which ls



whereis:

命令所在路徑:/usr/bin/whereis

執行權限:所有用戶

功能描述:搜索命令所在目錄及幫助文檔路徑

範例:$whereis ls


幫助文檔路徑文檔中1表示命令的幫助,5表示配置文檔的幫助

grep:

命令所在路徑:/bin/grep

執行權限:所有用戶

語法:grep  -iv  [指定字串][文件]

功能描述:在文件中搜尋字串匹配的並行輸出

                     -i 不區分大小寫

                     -v 排除指定字串

範例:$ grep  stop  /etc/init/acpid.conf

查找/etc/init/acpid.conf文件裏面的stop



grep -v :排除指定字串

                 比如排除註釋行

範例:$ grep -v  ^# /etc/init/acpid.conf

(^符號表示從頭開始刪除#號行,避免註釋行在中間,誤刪有效行)


(在文件內容裏面查找)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章