close

按此前往linux完整教學目錄

 

 

依照檔案名搜尋系統目錄下的檔案:搜尋範圍比which要廣。不過這種搜尋方式,所搜尋的是「系統目錄下的檔案」,若是在使用者家目錄下的檔案,那應該是搜尋不到的。

(1) whereis 選項 檔案名:會搜尋系統目錄下,檔案名稱(不包含副檔名)或目錄名檔案名完全吻合者,並顯示其完整路徑。其中,選項可以是:

-b:只搜尋二進位檔。

-m:只搜尋manual說明檔(通常位於/usr/share/man/目錄之下)。

-s:只搜尋source來源檔。

-u:搜尋非二進位檔、非manual說明檔、非source來源檔的檔案。

無選項:等同-b-m-s-u的聯集。

(2) locate 選項 名稱:會搜尋系統目錄下,檔案名稱(不包含副檔名)或目錄名其中包含名稱,並顯示其完整路徑。其中,選項可以是:

-i:將名稱的大小寫視為相同。

-r名稱可用正規表示法來表達。

無選項。

(重要!)whereislocate指令,其搜尋是依據一個「檔案資料庫」(如locate是根據/var/lib/mlocate/這個資料庫),而非於硬碟中的逐個檔案的找(好處是式搜尋速度加快,較不損害硬碟)。這「檔案資料庫」通常每隔一段時間更新一次,使得這兩個指令所找到的資料與實際情況可能有「時差」。為避免此情況,可用updatedb指令來即時更新資料庫。

(3) findfind指令是直接於硬碟中的逐個檔案搜尋,較傷硬碟、速度較慢,但準確性是最高。以下只介紹較常用的寫法:

(3-1) find 路徑 時間紀錄 -n:乃是搜尋時間紀錄在距當前時間n天之內、且位於路徑之下的檔案。其中,時間紀錄的字面值可以是-mtime-ctime-atime,表示依據哪一種時間紀錄來搜尋。n是正整數,單位是天數。

(3-2) find 路徑 -newer 某檔案:搜尋在路徑底下,比某檔案更新的檔案。

(3-3) find 路徑 -user 某使用者帳號:搜尋在路徑下,某使用者所擁有的檔案。這個指令,可以搜尋到所有符合條件的檔案,不限於系統檔。

(3-4) find 路徑 -group 某群組名稱:搜尋在路徑下,某群組所擁有的檔案。這個指令,可以搜尋到所有符合條件的檔案,不限於系統檔。

(3-5) find 路徑 -nouser:搜尋在路徑底下,不屬於任何擁有者的「無主檔案」(這些無主檔案,可能會造成系統上的不安全,但也不盡然。有些可能是下載來的檔案,有些可能是該擁有者已被除名)。這個指令,可以搜尋到所有符合條件的檔案,不限於系統檔。

(3-6) find 路徑 -nogroup:搜尋在路徑底下,不屬於任何群組的檔案」。

 

 

上一篇:linux which指令

下一篇:linux find 用法1

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()