歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux 命令與文件的搜尋

Linux 命令與文件的搜尋

日期:2017/3/2 17:14:00   编辑:Linux基礎知識

平時會偶爾忘記一些命令或者文件,下面的這些命令能夠幫我們快速的找到命令或者文件

1. 命令的搜尋

  命令:which

  功能:在PATH配置的目錄下搜尋命令

  用法:which [-a] [command]

  參數:

    -a: 把從PATH配置的目錄找到找到的所有指令都列出,而不是只顯示第一個被找到的指令

  例子1:查找man命令,有且僅顯示一條查詢結果

    

  例子2:查找man命令,並顯示所有的查詢結果

    

    由上面兩個可以看出有沒有參數-a的差別

  注意點:

    這個命令是根據PATH所配置的目錄去搜尋待查命令,並且which後面加的完整命令名。有一些命令是bash內建的命令,不能通過which去查出。

2. 文件或者目錄名的搜尋

  命令:whereis

  功能:在指定的特殊目錄下去搜尋文件或者目錄名

  用法:whereis [-blmsu] [文件或者目錄名]

  參數:

    -b: 只查詢binary的文件

    -l: 列出whereis查詢的所有目錄

    -m: 只找在說明檔manual下面查找

    -s: 只找source來源文件

    -u: 搜尋不在-[bms]項目中的其它特殊文件

  例子1:查找cat命令的相關的文件

    

  例子2:在說明檔manual下面查找cat相關的文件

    

  注意點:

    whereis後面接的是完整的文件或者目錄名

  命令:locate

  功能:在已建立的數據庫裡面,查找文件或者目錄

  用法:locate -[iclSr] 部分檔案名

  參數:

    -i: 忽略大小寫

    -c: 不輸出文件名,只計算出找到的文件數量

    -l: 後面加輸出的行數,例如輸出3行就加參數-l 3

    -S: 輸出locate所使用的資料庫的詳細信息

    -r: 後面可接正規表達式的顯示法

  例子1:

    查找含有history的文件名或者目錄中包含history的文件和目錄,並且只顯示6行

    

  例子2:顯示locate所使用的資料庫的信息

    

    這裡可以看到資料庫在系統裡面的目錄和文件名

  注意:

    使用locate查詢會有一定的限制,因為該命令會到指定的資料庫裡面去查詢,但資料庫一般一天才會自動更新一次(各個Linux的distribution會不同),這樣新建立文件或者目錄就會找不到。我們可以通過命令updatedb去手動更新資料庫,updatedb指令會讀取/etc/updatedb.conf文件裡面的設定,然後再去硬盤裡面搜尋文件或者目錄,然後更新資料庫,這樣新建的文件或者目錄就可以查詢到了。

  命令:find

  功能:搜尋文件或者目錄

  用法:find [path] [option] [action]

  參數:

    1. 與時間有關的參數:共有-atime,-ctime和-mtime

     -mtime n: n為數字,表示在n天之前的一天以內修改過內容的文件

     -mtime +n: 顯示在n天之前(不含n天本身)被修改過內容的文件

     -mtime -n: 顯示在n天之內(含n天本身)被修改過內容的文件

     -newer file: file為一個存在的文件,顯示比file還新的文件

    將系統過去24小時修改過內容的文件或者目錄列出

    

    列出root家目錄下面比anaconda-ks.cfg文件更新的文件和目錄

    

    2. 與使用者或者群組相關的參數

     -uid n: n為數字,n是user的user id,記錄在文件/etc/passwd中

     -gid n: n為數字,n是group的group id,記錄在文件/etc/shadow中

     -user name: name為user的賬戶名,例如root

     -group name: name為group的組名,例如users

     -nouser: 尋找文件擁有者不在/etc/passwd中的文件

     -nogroup: 尋找文件群組不在/etc/group中的文件

    查詢home目錄下面屬於kelvin的所有文件和目錄

    

    查詢根目錄下面不屬於任何人的檔案

    

    3. 與文件權限和名稱相關的參數

    -name filename: 搜尋檔案名稱為filename的文件

    -size [+-]SIZE: 搜尋比SIZE還要大(+)或者小(-)的文件,size的單位有:c: 代表byte,k: 代表kbyte

    -type TYPE: 搜尋文件的類型為TYPE的,類型主要有:一般正規文件(f),裝置檔案(b,c),目錄(d),連結檔(l),socket(s)及FIFO(p)

    -perm mode: 搜尋文件權限等於mode的文件

    -perm -mode: 搜尋文件權限必須要全部包括mode權限的文件

    -perm /mode: 搜尋文件權限包括任何一mode的權限的文件

    在根目錄下找出passwd的文件

    

    在根目錄下查找含有passwd的文件

    

    查找run目錄下的socket類型的文件

   

    查詢根目錄下含有s或者t權限的文件

    

    查詢根目錄下含有s或者t權限的文件,並且以ls -al的方式顯示結果

    

    顯示根目錄下面大於1M的文件

    

Copyright © Linux教程網 All Rights Reserved