歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 實用的查找技術(總結)

實用的查找技術(總結)

日期:2017/3/6 15:19:21   编辑:關於Unix
本文收集了各種查找技術find , grep , locate , type , which , whereis ,whatis . 以供大家參考. find 命令 find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件並對之采取相關的操作。 find / -name file 該命令提供的尋找條   本文收集了各種查找技術find , grep , locate , type , which , whereis ,whatis . 以供大家參考.

find 命令
find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件並對之采取相關的操作。

find / -name $file

該命令提供的尋找條件可以是一個用邏輯運算符not、and、or組成的復合條件。邏輯運算符and、or、not的含義為:
(1)and:邏輯與,在命令中用“-a”表示,是系統缺省的選項,表示只有當所給的條件都滿足時,尋找條件才算滿足。例如:
$ find –name ’tmp’ –xtype c -user ’inin’
該命令尋找三個給定條件都滿足的所有文件。

(2)or:邏輯或,在命令中用“-o”表示。該運算符表示只要所給的條件中有一個滿足時,尋找條件就算滿足。例如:
$ find –name ’tmp’ –o –name ’mina*’
該命令查詢文件名為’tmp’或是匹配’mina*’的所有文件。

(3)not:邏輯非,在命令中用“!”表示。該運算符表示查找不滿足所給條件的文件。例如:
$ find ! –name ’tmp’
該命令查詢文件名不是’tmp’的所有文件。

需要說明的是:當使用很多的邏輯選項時,可以用括號把這些選項括起來。為了避免Shell本身對括號引起誤解,在話號前需要加轉義字符“\”來去除括號的意義。

grep 命令
在命令後鍵入搜索的模式,再鍵入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用來生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用單引號把要搜索的模式括起來,用來表明搜索的模式是由包含空格的字符串組成。否則,Shell將把空格認為是命令行參數的定界符,而grep命令將把搜索模式中的單詞解釋為文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。
$ grep ’text file’ example

用戶可以在命令行上用Shell特殊字符來生成將要搜索的文件名列表。在下面的例子中,特殊字符“*”用來生成一個文件名列表,該列表包含當前目錄下所有的文件。該命令將搜索出當前目錄下所有文件中與模式匹配的行。
$ grep data *

特殊字符在搜索一組指定的文件時非常有用。例如,如果想搜索所有的C程序源文件中特定的模式,您可以用“*.c”來指定文件名列表。假設用戶的 C程序中包含一些不必要的轉向語句(goto語句),想要找到這些語句,可以用如下的命令來搜索並顯示所有包含goto語句的代碼行:
$ grep goto *.c


locate 命令

locate <string>
這個命令是在內部數據庫中查找包含它們名字的文件然後輸出全部文件名稱,你可以通過使用grep命令過濾輸出結果。舉例,下面的例子查找所有包含字符”kde”並且在目錄bin的文件:
locate kde | grep bin

查找的文件名不必使用全部名字;可是使用部分字符,例如使用“gno”代替“gnome”。使用參數-r選項可以使用正則表達式進行查詢:
locate -r 'gno*'

需要注意的一個問題是locate命令區分大小寫:查找HOWTO和howto,你會得到不同的結果。 同find命令相比較,locate命令是從數據庫中查找,而不是每次搜索文件系統。因為是從數據庫中查找,locate的速度遠遠快於find命令。但是,使用locate命令查找的結果僅僅是在當前數據庫。 Locate數據庫是通過cron的日任務更新,你也可以手工進行,使用updatedb命令完成(通常需要root用戶)。如果在你安裝新的程序或者刪除舊的文件,又不希望等到下一日進行locate數據庫的更新,你可以使用手工的處理完成。


type 命令
type命令可以准確的高訴你一個可找到的命令的類型和位置
如:type reboot


which 命令
which–顯示命令的全路徑
which reboot


whereis 命令
例如:查找ls命令在什麼目錄下。
$ whereis ls
ls:/bin/ls/usr/man/man1/ls.1

whatis 命令
獲取幫助
最有用的命令之一是那些提供幫助的命令(特別是對那些學習 Linux 的人而言)。Linux 中的兩個重要的信息來源是聯機參考手冊,或 man 頁面和 whatis 工具。您可以用 whatis 命令來訪問一個不熟悉的命令的 man 頁面。

  $ whatis echo
  要了解關於這個命令的更多信息,可以使用:

  $ man echo
  如果您不知道某個特殊任務所需的命令,您可以用 man -k (也稱為 apropos)和一個主題來生成可能的命令。例如:

  $ man -k files
  一個很有用但常常被忽視的命令可以提供關於使用 man 本身的信息:

Copyright © Linux教程網 All Rights Reserved