Linux學習之——Linux常用命令(三):文件搜索命令

文件搜索命令:

which:
語法: which [命令名稱]
它只能查找命令所在的目錄或者說路徑,不能查找其他的。
          位於sbin,則是管理員所用命令
           位於bin,則是所有的用戶都能使用命令
功能描述:顯示系統命令所在目錄(絕對路徑),會顯示出命令相關的別名。以便判斷命令類型
範例:$which ls

whereis:
語法:whereis [ 命令名稱 ]
功能描述:找到命令所在目錄(也是絕對路徑),會顯示命令幫助文檔所在位置。

find:
語法:find [搜索路徑] [搜尋關鍵字]
功能描述:查找文件和目錄(find可以查找任何類型的文件或目錄,類似於在Window下搜索文件)
搜索路徑在選擇的時候,應該儘量縮小查找範圍,遍歷整個硬盤,不僅查找速度慢,還會佔用大量的系統資源

範例1:根據文件名-name,假如匹配“init”
find  /etc  -name init
(在Linux只會匹配文件名爲init的文件,Windows會匹配文件名包含init的文件,這是二者的區別)

範例2:使用*(通配符),假如匹配“innit/inittab”。當我們對文件名有些模糊的時候,可以使用通配符*
find  /etc  -name  init*
*注意:*代表0個或多個字符

範例3:使用?匹配單個字符,假如匹配“inittab”
find  /etc -name  init???

範例4:根據文件大小-size 當我們不記得名稱但是記得文件大小的時候
很多的Linux系統或Unix通用數據塊block(512字節)作爲數據單位,大於 +、小於-、等於
find  /etc  -size +204800

範例5:根據所有者查找 -user [ 用戶名]
find  /home  -user  samlee

範例6:根據時間值查找 
1. 以天爲單位:-ctime、 -atime 、-mtime
2. 以分鐘爲單位:cmin、amin、mmin
    c 表示--change : 文件屬性被修改過 (所有者、所屬組、權限)
    a 表示--access :文件用vi/vim瀏覽過
    m表示--modify :文件內容被修改
3. 直接用時間,如120分鐘內:find  /etc -mmin -120
範例7:連接符:
    -a:and  邏輯與
    範例:查找大於80MB小於100MB的文件
              $find   /etc -size +163840  -a  -size -204800
    -o : or     邏輯或
    範例:查找文件名爲inittab 大於1000MB的文件
              $find /etc -name inittab -o -size +2048000
    -exec :  execute  連接執行符,找到文件可以對其進行相關操作,如列出目錄、刪除文件等等。
    格式:find ......-exec  命令  {} \;   
             {}代表了find查詢結果集,\轉義符,使命令使用本身的含義;
    範例:find /etc -name inittab -exec ls -l {} \;
             find /test -name testfile3 -exec rm {} \;
             find /home -user samlee -exec rm -rf {} \;
    -ok:在執行前詢問確認
    範例:find /etc -name inittab -ok rm {} \;
綜合範例:
    find /etc -name init* -a -type f -exec ls -l {} \;

範例8:文件類型 -type:
    f 二進制文件
    l 軟鏈接文件
    d 目錄文件 
    範例:$find  /etc -name init* -a -type l

範例9:根據inum查找 -inum定位文件

    範例: $find /etc -inum  16

這個方法可以用來刪除一些不按照文件規則創建,用普通rm命令不好刪除的文件,比如:“a b”、“-abc”這樣的文件。先用 ls -i 列出包含i節點數字的文件,然後通過 $find /etc -inum 16 exec rm {} \;刪除。


located :
語法:locate [搜索關鍵字]
功能描述:$locate file 列出所有跟file相關的文件
速度比find快,find是在整個硬盤下查找,locate是根據系統目錄文件數據庫中查找,默認命令、配置文件等可以用locate查找,但是對於新增文件,當沒有更新數據庫文件時用locate是查找不到的。                    


grep:
語法:grep [指定字串] [源文件名稱]
功能描述:在文件中搜尋字串匹配的行並輸出。


man:
語法:man [命令或配置文件]
功能描述:$man ls  查看ls命令的幫助信息
                $man service 查看配置文件service的幫助信息


info:
語法:info [任何關鍵字]
功能描述:獲得幫助信息
範例:$info ls  查看ls指令的幫助信息


whatis:
語法:whatis  [命令名稱]
功能描述:獲取命令簡短的用途說明信息


help:
語法:help [shell內置命令]
功能描述:查看shell內置命令的幫助。


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