如何使用find和locate 命令在Linux 中查找文件和目錄?

我們?cè)谑褂肔inux的時(shí)候,難免要在系統(tǒng)中查找某個(gè)文件,比如查找xxx配置文件在哪個(gè)路徑下、查找xxx格式的文件有哪些等等。
既然是Linux系統(tǒng),那么使用命令行形式去查找肯定是最快最直接的方法,雖然現(xiàn)在有很多連接工具可以提供查找功能,但是歸根到底還是利用了相關(guān)查找的命令,那么今天瑞哥就帶大家來(lái)學(xué)習(xí)一下,如何用命令的形式查找文件。
因?yàn)樯婕暗胶芏囹}操作,大家肯定在工作中沒(méi)有全部用到,建議你先收藏本文,用到的時(shí)候記得回來(lái)查閱。
使用 find 命令在 Linux 中查找文件和目錄
按名稱(chēng)查找文件
按部分名稱(chēng)查找文件
按大小查找文件
使用時(shí)間戳查找文件
按所有者查找文件
按權(quán)限查找文件
按名稱(chēng)查找目錄
使用 locate 命令在 Linux 中查找文件和目錄
按名稱(chēng)查找文件
按部分名稱(chēng)查找文件
限制搜索結(jié)果
顯示匹配條目的數(shù)量
總結(jié)
find命令是 Linux 中最重要和最常用的命令之一。
使用 find 命令在 Linux 中查找文件和目錄
Linux find 命令是一個(gè)強(qiáng)大的工具,它使系統(tǒng)管理員能夠根據(jù)模糊的搜索條件定位和管理文件和目錄,它支持按文件、文件夾、名稱(chēng)、創(chuàng)建日期、修改日期、所有者和權(quán)限進(jìn)行搜索。
find 命令用于查找文件和目錄并對(duì)其進(jìn)行后續(xù)操作,它遞歸地搜索每個(gè)路徑中的文件和目錄,因此,當(dāng)find命令遇到給定路徑中的目錄時(shí),它會(huì)在其中查找其他文件和目錄。
按名稱(chēng)查找文件
find命令的一般語(yǔ)法是:
讓我們分解一下這個(gè)語(yǔ)法:
path: 定義 find 將搜索文件的起始目錄。
options:控制find 進(jìn)程的行為和優(yōu)化方法。
expression:此屬性由選項(xiàng)、搜索模式和操作符分隔的操作組成。
find 命令最常見(jiàn)的用途是按文件名搜索文件,-type f 選項(xiàng)告訴系統(tǒng)我們正在尋找一個(gè)文件,要使用文件名查找文件,請(qǐng)使用 帶有默認(rèn)命令的 標(biāo)志。
例如,要搜索wljslmz.ppt 在/home 目錄中命名 的 文件,您可以使用以下命令:
Linux 對(duì)文件名區(qū)分大小寫(xiě),因此如果您要查找名為 的文件Wljslmz.ppt,上面顯示的命令將不會(huì)返回任何結(jié)果,在這種情況下,您將需要使用該-iname選項(xiàng)而不是-name.
該-iname選項(xiàng)運(yùn)行不區(qū)分大小寫(xiě)的搜索,因此我們可以這樣做:
此命令將找到具有以下任何名稱(chēng)的文件:wljslmz.ppt,Wljslmz.ppt,WLJSLMZ.ppt等。
按部分名稱(chēng)查找文件
您可以使用文件名元字符,例如星號(hào) *,但您應(yīng)該在每個(gè)字符前放置一個(gè)轉(zhuǎn)義字符\ 或?qū)⑺鼈兝ㄔ谝?hào)中。
例如,要查找所有以**.ppt**結(jié)尾的文件,您可以運(yùn)行:
這與:
同樣,要查找 Linux 系統(tǒng)上名稱(chēng)以 開(kāi)頭的所有文件wljslmz,您可以運(yùn)行:
按大小查找文件
使用 find 命令,我們還可以輕松實(shí)現(xiàn)一些看起來(lái)很復(fù)雜的事情:找到比給定大小更大或更小的文件。
該選項(xiàng)上find允許我們搜索特定大小的文件,+和-前綴表示“大于”和“小于”。
下面的示例將搜索所有大于 2 GB 的文件,注意+ 符號(hào)的使用:
在上面的示例中,后綴 G 表示千兆字節(jié),其他后綴:
c: 字節(jié)。
k: 千字節(jié)。
M: 兆字節(jié)。
上述 find 命令用于搜索所有大于指定大小的文件。
find 命令示例將搜索所有小于 100 KB 的文件,注意- 符號(hào)的使用:
如何在 Linux 中查找特定大小的文件?
使用以下命令查找大小介于 200 兆字節(jié)和 320 兆字節(jié)之間的文件:
使用時(shí)間戳查找文件
Linux 為文件系統(tǒng)中的每個(gè)文件分配特定的時(shí)間戳,find 命令還可以根據(jù)上次修改、訪問(wèn)或更改時(shí)間搜索文件。
-mtime選項(xiàng)用于指定文件存在的天數(shù),表達(dá)式可以以?xún)煞N方式使用:
-mtime +N 查找多N 天前修改的文件 (大于)。
-mtime -N 查找少于N 幾天前修改的文件 (少于)。
如果您輸入+3,它將查找/etc目錄中超過(guò) 4 天的所有文件。
查找過(guò)去 24 小時(shí)內(nèi)發(fā)生更改的所有文件:
使用 -mmin N 表達(dá)式來(lái)依賴(lài)分鐘而不是天。
從/etc 上一分鐘修改的目錄中查找所有文件 。
可以組合表達(dá)式,以下是如何在 Linux 中查找不到 60 分鐘前和超過(guò) 30 分鐘前更改過(guò)的文件:
按所有者查找文件
要查找特定用戶(hù)或組擁有的文件,請(qǐng)使用 -user 和 -group 選項(xiàng)。
例如,要在服務(wù)器的/home文件夾中查找用戶(hù)wljslmz擁有的文件:
www-data在/home目錄中查找屬于某個(gè)組的所有文件:
按權(quán)限查找文件
該 -perm 選項(xiàng)允許用戶(hù)搜索具有特定權(quán)限集的文件。
下面的命令將在當(dāng)前目錄中查找權(quán)限為 777 的文件。
使用該 - 選項(xiàng)意味著“至少設(shè)置了這個(gè)權(quán)限級(jí)別,以及任何更高的權(quán)限”。
此示例顯示/home目錄中至少具有 644 權(quán)限的所有資源,這意味著,與權(quán)限的文件,例如777,745,666,655,654,等,將匹配,同時(shí)與權(quán)限的文件642,611,600,544,等,將不匹配。
按名稱(chēng)查找目錄
到目前為止,我們看到的所有示例都返回文件,但是,如果您只需要搜索目錄,則可以使用該 -type d 參數(shù)。
換句話說(shuō),您可以find通過(guò)使用-type d標(biāo)志(d表示目錄)阻止Linux 中的命令搜索目錄以外的其他文件類(lèi)型。
查找/opt目錄下名字為app的文件夾:
使用 locate 命令在 Linux 中查找文件和目錄
雖然 find 是Linux 中最流行和最強(qiáng)大的用于文件搜索的命令行實(shí)用程序之一,但對(duì)于需要即時(shí)結(jié)果的情況來(lái)說(shuō),它的速度還不夠快。
該locate命令比f(wàn)ind命令更快,find因?yàn)樗褂孟惹皹?gòu)建的數(shù)據(jù)庫(kù),而該locate命令實(shí)時(shí)搜索所有實(shí)際目錄和文件。
如果 locate 未安裝,您可以使用 Linux 發(fā)行版的包管理器輕松安裝它。
在 Ubuntu 或任何其他 基于Debian的系統(tǒng)上,鍵入以下命令:
如果您使用的是 Fedora 或 CentOS,請(qǐng)改用以下命令:
Arch Linux 用戶(hù)需要執(zhí)行:
在locate 可以使用之前 ,需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù),這是通過(guò)updatedb 命令完成的,該 命令顧名思義就是更新數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)將每天自動(dòng)更新,但您也可以隨時(shí)自行更新,以便獲得最新結(jié)果。
按名稱(chēng)查找文件
locate命令非常易于使用。您所要做的就是將您要搜索的文件名傳遞給它。
就像find命令一樣,locate配置為以區(qū)分大小寫(xiě)的方式處理查詢(xún),要讓locate命令忽略區(qū)分大小寫(xiě)并顯示大寫(xiě)和小寫(xiě)查詢(xún)的結(jié)果,您需要使用該-i選項(xiàng)。
按部分名稱(chēng)查找文件
如果要搜索包含字符串的所有文件名.ppt,則可以使用locate以下方式進(jìn)行搜索:
限制搜索結(jié)果
您可以使用-n選項(xiàng)返回搜索所需數(shù)量的結(jié)果,以避免搜索結(jié)果出現(xiàn)冗余 。
例如,如果您只需要查詢(xún)的 20 個(gè)結(jié)果,則可以鍵入以下命令:
顯示匹配條目的數(shù)量
要使用 locate 命令計(jì)算文件名或搜索模式的出現(xiàn)次數(shù),請(qǐng)調(diào)用-c 選項(xiàng)。
總結(jié)
Linux 用戶(hù)可以使用兩個(gè)最廣泛使用的文件搜索實(shí)用命令:find、locate,兩者都是在系統(tǒng)上查找文件的好方法,使用哪個(gè)命令還是根據(jù)情況來(lái)。
本文應(yīng)該讓您對(duì)如何在 Linux 系統(tǒng)上查找文件有一個(gè)基本的了解,想要將搜索命令玩的溜,別忘了使用各類(lèi)參數(shù)!