Linux如何查找文件

linux查找文件的方法:1、使用find命令,可根據(jù)文件的屬性進(jìn)行查找,如文件名、文件大小、所有者、所屬組、是否為空、訪問時間、修改時間等。2、使用locate命令,配合數(shù)據(jù)庫查看文件位置。Whereis command can only be used to search for binary files, source code files, and man manual pages.。4、使用which命令,可查看可執(zhí)行文件的位置。5、使用type命令查找。6、用grep命令查找。

find 命令查找文件

使用Linux的find命令,你可以通過不同的搜索準(zhǔn)則,如名稱、類型、所有者、大小等來搜索目錄樹。基本語法如下:

#?find?path?expression?search-term

下面是使用 find 命令根據(jù)文件名來查找特定文件的一個例子:

#?find?-name?test.file

命令會搜索整個目錄樹來查找名為test.file 的文件,并且會提供其存放位置。你可以使用你 Linux 上一個存在的文件名來嘗試一下。
find 命令有時會花費(fèi)幾分鐘來查找整個目錄樹,尤其是如果系統(tǒng)中有很多文件和目錄的話。要顯著減少時間,你可以指定搜索的目錄。比如,如果你知道 /var中存在 test.file,那就沒有必要搜索其它目錄。這樣,你可以使用下面的命令:

#?find?/var?-name?test.file

find 還可以根據(jù)時間、大小、所屬人、權(quán)限等選項(xiàng)搜索文件。如果你需要獲得更多關(guān)于這些選項(xiàng)的信息,可以查看 Linux find 命令的手冊。

#?man?find

locate 命令查找文件

要在Linux中使用locate命令,首先需要安裝它。

如果你正在使用 ubuntu,運(yùn)行下面的命令來安裝 locate:

#?apt-get?update#?apt-get?install?mlocate

如果你使用的是 centos ,運(yùn)行下面的命令來安裝 locate:

#?yum?install?mlocate

相較于find,使用locate可以更快地在數(shù)據(jù)庫中查找文件。要更新搜索數(shù)據(jù)庫,運(yùn)行下面的命令:

#?updatedb

使用 locate 查找文件的語法:

#?locate?test.file

類似于 find 命令,locate 命令也具備多種選項(xiàng),可以對輸出進(jìn)行過濾。要了解更多你可以查看Linux Locate 命令的手冊。

#?man?locate

whereis命令查找文件

whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。

whereis命令的使用實(shí)例:

  $?whereis?grep

說明:whereis尋找特定文件,只能用于查找二進(jìn)制文件、源代碼文件和man手冊頁

which命令查找文件

which查看可執(zhí)行文件的位置 ,只有設(shè)置了環(huán)境變量的程序才可以用

The purpose of the “which” command is to search for the location of a particular system command within the paths specified by the PATH variable, and returns the first search result.。利用which命令,可以查看某個系統(tǒng)命令是否可用,以及該命令被執(zhí)行的確切位置。

which命令的使用實(shí)例:

  $?which?grep

type命令查找文件

type命令其實(shí)不能算查找命令,它是用來區(qū)分某個命令到底是由shell自帶的,還是由shell外部的獨(dú)立二進(jìn)制文件提供的。使用-p參數(shù)會顯示外部命令的路徑,類似于which命令。

type命令的使用實(shí)例:

  $?type?cd

系統(tǒng)會提示,cd是shell的自帶命令(build-in)。

  $?type?grep

系統(tǒng)會提示,grep是一個外部命令,并顯示該命令的路徑。

  $?type?-p?grep

加上-p參數(shù)后,就相當(dāng)于which命令。

grep命令查找文件

grep是根據(jù)文件的內(nèi)容進(jìn)行查找,會對文件的每一行按照給定的模式(patter)進(jìn)行匹配查找。

基本格式:

find?[options]?expression

主要參數(shù):

[options]主要參數(shù):

  • -c:只輸出匹配行的計數(shù)。

  • -i:不區(qū)分大小寫

  • -h(huán):查詢多文件時不顯示文件名。

  • -l:查詢多文件時只輸出包含匹配字符的文件名。

  • -n:顯示匹配行及行號。

  • -s:不顯示不存在或無匹配文本的錯誤信息。

  • -v:顯示不包含匹配文本的所有行。

pattern正則表達(dá)式主要參數(shù):

  • : 忽略正則表達(dá)式中特殊字符的原有含義。

  • ^:匹配正則表達(dá)式的開始行。

  • $: 匹配正則表達(dá)式的結(jié)束行。

  • >:到匹配正則表達(dá)式的行結(jié)束。

  • [ ]:單個字符,如[A]即A符合要求 。

  • [ – ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。

  • .:所有的單個字符。

  • * :有字符,長度可以為0。

實(shí)例:

grep -r “字符串” ?很方便

1)grep ‘test’ d*  #顯示所有以d開頭的文件中包含 test的行

2)grep ‘test’ aa bb cc    #顯示在aa,bb,cc文件中包含test的行

3)grep ‘[a-z]{5}’ aa   #顯示所有包含每行字符串至少有5個連續(xù)小寫字符的字符串的行

4)grep magic /usr/src  #顯示/usr/src目錄下的文件(不含子目錄)包含magic的行

5)grep -r magic /usr/src  #顯示/usr/src目錄下的文件(包含子目錄)包含magic的行

6)grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享