溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【Linux】文件查找:find

發(fā)布時間:2020-07-09 16:04:09 來源:網(wǎng)絡(luò) 閱讀:652 作者:威尼斯小艇 欄目:數(shù)據(jù)庫

Linux下有多種查找文件指令:find、whereis、which和locate。

● which:查看可執(zhí)行文件的位置

whereis:查看文件的位置

locate:配合數(shù)據(jù)庫查看文件

find:實際搜尋硬盤查詢

       其中find是最常用和最強大的查找命令。它能做到實時查找,精確查找,但速度慢。下面主要對find指令相關(guān)用法進行詳細(xì)介紹。

●●●find指令:

【格式】find  [指定查找目錄]  [查找規(guī)則]  [查找完后執(zhí)行的action]

默認(rèn)路徑為當(dāng)前目錄;默認(rèn)查找完后執(zhí)行的action為 -print。

-print                         //默認(rèn)情況下的動作

-ls                              //查找到后用ls 顯示出來

-ok  [commend]        //查找后執(zhí)行命令的時候詢問用戶是否要執(zhí)行

-exec [commend]      //查找后執(zhí)行命令的時候不詢問用戶,直接執(zhí)行

【Linux】文件查找:find

這里要注意{}的使用:替代查找到的文件

1、指定查找目錄

【Linux】文件查找:find

2、根據(jù)文件名查找

-name:根據(jù)文件名查找(精確查找)

-iname:根據(jù)文件名查找,但不區(qū)分大小寫

【Linux】文件查找:find

另外介紹下文件名通配的知識。

1)*表示 通配任意的字符

【Linux】文件查找:find

2)?表示通配任意的單個字符

【Linux】文件查找:find

3)[]表示通配括號里面的任意字符

【Linux】文件查找:find

3、正則表達式查找

?。悍菞l件;

-a :與條件(-and);

-o :或條件(-or),連接兩個不同的條件(兩個條件滿足其一即可)

-not 非條件(與“!”相同,對條件取反)

【Linux】文件查找:find

4、根據(jù)文件類型來查找文件

 【-type】

f :普通文件;d :目錄文件;l :鏈接文件;b :塊設(shè)備文件;c:字符設(shè)備文件;p:管道文件;s :socket文件

【Linux】文件查找:find

5、根據(jù)文件大小查找文件

【-size】

-size n: 查找文件長度等于n的文件;-size -n:查找文件長度小于n的文件;-size +n:查找文件長度大于n的文件

【Linux】文件查找:find

6、根據(jù)文件時間查找文件

-atime:訪問時間,用戶最近一次訪問文件的時間;

-mtime:修改時間,文件內(nèi)容最后一次被修改的時間。
-ctime:變化時間,文件元數(shù)據(jù)(metadata,例如權(quán)限或所有權(quán))最后一次改變的時間。

【Linux】文件查找:find

7、根據(jù)文件權(quán)限查找文件

【-prem】

權(quán)限符號:rex分別表示可讀、可寫和可執(zhí)行,。當(dāng)權(quán)限符號為-e-:表示只可以寫,八進制表示為2,依次進行表示。

【Linux】文件查找:find

8、根據(jù)文件所屬用戶和組來查找文件

 -user :根據(jù)屬主來查找文件

 -group:根據(jù)屬組來查找文件

-nouser  and  -nogroup:在整個系統(tǒng)中查找既沒有屬主又沒有屬組的文件(這樣的文件通常是很危險的,作為系統(tǒng)工程師的我們應(yīng)該及時清除掉)

【Linux】文件查找:find

9、根據(jù)uid gid來查找用戶

gid為GroupId,即組ID,用來標(biāo)識用戶組的唯一標(biāo)識符
uid為UserId,即用戶ID,用來標(biāo)識每個用戶的唯一標(biāo)示符

【Linux】文件查找:find
用戶組:將同一類用戶設(shè)置為同一個組,如可將所有的系統(tǒng)管理員設(shè)置為admin組,便于分配權(quán)限,將某些重要的文件設(shè)置為所有admin組用戶可以讀寫,這樣可以進行權(quán)限分配。
每個用戶都有一個唯一的用戶id,每個用戶組都有一個唯一的組id

●● which指令:

       which命令的作用是:在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果。也就是說,使用which命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令。 

【格式】which 可執(zhí)行文件名稱 

-n :指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。

-p :與-n參數(shù)相同,但此處的包括了文件的路徑。

-w :指定輸出時欄位的寬度。

-V :顯示版本信息

【Linux】文件查找:find

      which 是根據(jù)使用者所配置的 PATH 變量內(nèi)的目錄去搜尋可運行檔的,所以不同的 PATH 配置內(nèi)容所找到的命令是不一樣的。 cd 是bash 內(nèi)建的命令,但是 which 默認(rèn)是找 PATH 內(nèi)所規(guī)范的目錄,所以找不到的。查找which時會有兩個 which ,其中一個是 alias 這就是所謂的【命令別名】,意思是輸入 which 會等同后面接的那串命令。

● whereis指令:

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

        whereis命令是定位可執(zhí)行文件、源代碼文件、幫助文件在文件系統(tǒng)中的位置。這些文件的屬性應(yīng)屬于原始代碼,二進制文件,或是幫助文件。whereis 程序還具有搜索源代碼、指定備用搜索路徑和搜索不尋常項的能力。

【格式】whereis  文件名

-b :定位可執(zhí)行文件。

-m :定位幫助文件。

-s :定位源代碼文件。

-u :搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。

【Linux】文件查找:find

和find相比,whereis查找的速度非???,這是因為linux系統(tǒng)會將系統(tǒng)內(nèi)的所有文件都記錄在一個數(shù)據(jù)庫文件中,當(dāng)使用whereis和locate時,會從數(shù)據(jù)庫中查找數(shù)據(jù),而不是像find命令那樣,通過遍歷硬盤來查找,效率高。 

但是該數(shù)據(jù)庫文件并不是實時更新,默認(rèn)情況下時一星期更新一次,因此在用whereis和locate 查找文件時,有時會找到已經(jīng)被刪除的數(shù)據(jù),或者剛剛建立文件卻無法查找到,原因就是因為數(shù)據(jù)庫文件沒有被更新。

● locate指令:

      locate作用:使用者可以很快速的搜尋檔案系統(tǒng)內(nèi)是否有指定的檔案。其方法是先建立一個包括系統(tǒng)內(nèi)所有檔案名稱及路徑的索引數(shù)據(jù)庫之后當(dāng)尋找時就只需查詢這個索引數(shù)據(jù)庫而不必實際深入檔案系統(tǒng)之中了

【格式】locate  文件名

eg:locate passwd (只要包含了passwd的都會被顯示出來)

【Linux】文件查找:find

locate可進行篩選

 -i  :查找文件的時候不區(qū)分大小寫

 -n :只顯示查找結(jié)果的前N行 

【Linux】文件查找:find

【Linux】文件查找:find

【Linux】文件查找:find

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI