新聞中心
在Linux系統(tǒng)中,我們經(jīng)常需要找到某個(gè)文件或者特定的文件類型,這時(shí)候使用find和grep命令是非常實(shí)用和方便的。本文將介紹如何使用find和grep命令進(jìn)行文件查找。

創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、成華網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為成華等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
一、find命令
find命令是一個(gè)非常實(shí)用的Linux命令,它可以查找符合條件的文件。find命令的基本格式如下:
“`
find [path] [option] [expression]
“`
1. [path]表示要查找的路徑,如果不指定路徑,則默認(rèn)在當(dāng)前目錄下進(jìn)行查找。
2. [option]表示查找時(shí)的選項(xiàng),常用的選項(xiàng)有:-name、-type、-mtime等。
3. [expression]表示查找時(shí)的表達(dá)式,常用的表達(dá)式有:-or、-and、-not等。
例如,查找文件名為test.txt的文件:
“`
find / -name test.txt
“`
這會(huì)從根目錄開始查找test.txt文件。
如果想要查找所有txt文件,可以這樣寫:
“`
find / -type f -name “*.txt”
“`
這會(huì)在根目錄下查找所有的txt文件。
如果想要查找修改時(shí)間為3天以內(nèi)的文件,可以這樣寫:
“`
find / -type f -mtime -3
“`
這會(huì)在根目錄下查找修改時(shí)間為3天以內(nèi)的文件。
二、grep命令
grep命令是Linux中的一個(gè)文本搜索工具,它可以在一個(gè)文本文件中搜索指定的內(nèi)容。grep命令的基本格式如下:
“`
grep [option] “pattern” [file]
“`
1. [option]表示選項(xiàng),常用的選項(xiàng)有:-i、-v、-c等。
2. “pattern”表示要查找的內(nèi)容,可以是字符串或者正則表達(dá)式。
3. [file]表示要搜索的文件名。
例如,查找文件中包含“hello”的行:
“`
grep “hello” test.txt
“`
這會(huì)在test.txt文件中查找包含“hello”的行。
如果想要查找不包含“hello”的行,可以加上-v選項(xiàng):
“`
grep -v “hello” test.txt
“`
這會(huì)在test.txt文件中查找不包含“hello”的行。
如果想要查找包含“hello”的行的數(shù)量,可以加上-c選項(xiàng):
“`
grep -c “hello” test.txt
“`
這會(huì)在test.txt文件中查找包含“hello”的行的數(shù)量。
三、find和grep的組合使用
我們可以使用find命令來找到符合條件的文件,然后使用grep命令在這些文件中查找指定的內(nèi)容。例如,查找所有txt文件中包含“hello”的行:
“`
find / -type f -name “*.txt” -exec grep -H “hello” {} \;
“`
這會(huì)在根目錄下所有的txt文件中查找包含“hello”的行,并將這些行的文件名一起輸出。
四、
使用find和grep命令可以很方便地進(jìn)行文件查找和內(nèi)容搜索,這兩個(gè)命令的組合使用可以更加高效地完成相關(guān)任務(wù)。熟練掌握這兩個(gè)命令的用法,可以提高工作效率和操作便捷性。
相關(guān)問題拓展閱讀:
- 如何使用Unix/Linux find命令
- linux RH 9.0 終端命令里find 和greep的區(qū)別是什么。兩個(gè)都是查找文件
如何使用Unix/Linux find命令
find 命令是 UNIX程序員的技能中功能最強(qiáng)大和最有用的命令之一。它通過許多強(qiáng)大的支持方式,讓文件查找顯示任務(wù)變得更加輕松。
find命令實(shí)例:
1.基于 目錄/文件名稱/文件類型 來搜索
在當(dāng)前目錄或子目錄中查找所有html文件,我們可以使凱鎮(zhèn)咐用:
find -name “*.html” -type f
在/usr/bin中查找所有sh文件find /usr/bin -name “*.sh” -type f
該命令有兩個(gè)測(cè)試條件,之一個(gè),“-name”用于檢驗(yàn)搜索過程中的每個(gè)文件名,如果你需要對(duì)大小寫敏感,可以使用“-iname”代替。第二個(gè)參數(shù)是“-type”,
它用于指定你感興 趣的文件類型。“f”表示我們查找的是普通文件,我們可以使用“d”表示目錄或使用“l(fā)”或”s”表示符號(hào)連接。在find 手冊(cè)中可盯純以看到該工具的所有選項(xiàng)。
find /-maxdepth 1 -name “*.html” -type f
Tips:將-maxdepth選項(xiàng)放在最前面
默認(rèn)情況下,find遍歷所有子目錄,但是你可以通過指定更大深度來控制這個(gè)行為。在前面的例子中,如果我們只想搜索這兩個(gè)目錄不想搜索下一層,你可以 添加“-maxdepth 1”到命令中。設(shè)置更大深度為0表示只檢驗(yàn)命令行中的給定文件。同樣,你可以設(shè)定最小深度,從旅梁而避免搜索位于根目錄的文件。
2.基于 用戶/用戶組 來搜索
find 的另一個(gè)應(yīng)用是搜索屬于某個(gè)給定用戶的文件,因此為了搜索我的系統(tǒng)中所有屬于我的文件,我使用以下命令:
find / -user gary
同樣可以搜索基于組用戶的文件,使用“-group”參數(shù)。
3.基于 文件相關(guān)的時(shí)間特征 來搜索
相關(guān)選項(xiàng):
分別使用“-ctime”,“-atime”和“-mtime”參數(shù)來指定最后創(chuàng)建時(shí)間,最后訪問時(shí)間和最后修改時(shí)間。(單位是”天”)
如果你需要更精確地搜索,可以使用分鐘變量“-cmin”,“-amin”和“-mmin”。
find ./ -mtime;返回最近24小時(shí)內(nèi)修改過的文件。./代表需要查找的文件夾
find ./ -mtime 1 返回的是前48~24小時(shí)修改過的文件。而不是48小時(shí)以內(nèi)修改過的文件。
find -ctime搜索最近兩天創(chuàng)建的文件
注意:
1前面的“-”表示我們是從今天向以前的日期范圍搜索,與數(shù)字前面沒有”-“是有區(qū)別的。如果你剛犯了一個(gè)錯(cuò)誤但不確定會(huì)影響到那些文件,
這很簡(jiǎn)單可以使用如下查詢:find -mmin -5
可以用以下命令查看atime和ctime
ls -lu 或者 ls -l –time=atime 顯示文件的atime
ls -lc 或者 ls -l –time=ctime 顯示文件的ctime
在提供一個(gè)例子,搜索當(dāng)前目錄下前20分鐘到10分鐘修改過的文件。
find . -mmin +9 -mmin -21
還可以使用 “-newer”,”-anewer”,”-cnewer”參數(shù)來指定一個(gè)文件,將其與要搜索的文件進(jìn)行時(shí)間的比較。
? -newer 指內(nèi)容最近被修改的文件
? -anewer 指最近被讀取過的文件
? -cnewer 指狀態(tài)最近發(fā)生變化的文件(查看文件狀態(tài)命令 stat filename)
例如,查找在sum.java 之后修改的文件
find -newer “sum.java”
4.基于 文件的大小 來搜索
例如我們知道一個(gè)Linux文件大小為1,500 bytes,那么我們可是使用如下命令來查詢
find . -size 1500c
字符 c 表明這個(gè)要查找的文件的大小是以bytes為單位。如果我們連這個(gè)文件的具體大小都不知道,那么在Linux中還可以進(jìn)行模糊查找方式來解決。例如我們輸 入
find . -size +c
這個(gè)命令,則標(biāo)明我們指定系統(tǒng)在根目錄中查找出大于字節(jié)的文件并顯示出來。命令中的“+”是表示要求系統(tǒng)只列出大于指定大小的文件,
而使 用“-”則表示要求系統(tǒng)列出小于指定大小的文件。
還有很多例子,
搜索大小為10M的文件
find . -size 10M
搜索大于10M的文件
find . -size +10M
找到小于10M的文件
find . -size -10M
要列出所有長度為零的文件,請(qǐng)使用下面的命令:
find . -empty – exec ls {} \
在查找到空文件之后,您可以選擇用 rm 命令來代替ls 命令,以刪除這些文件。
5. 基于 文件的權(quán)限 來搜索
查找當(dāng)前目錄下所有文件權(quán)限為755的文件
find . -perm 755 -print
6.使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我們想在/tmp目錄中查找大于字節(jié)并且在48小時(shí)內(nèi)修改的某個(gè)文件,我們可以使用-and來把兩個(gè)查找選項(xiàng)鏈接
起來組合成一個(gè)混合的查找方式。
find /tmp -size +c -and -mtime +2
如何搜索修蓋時(shí)間介于f1與f2各自的修改時(shí)間之間的文件?
find . -newer f1 -and ! -newer f//f1的修改時(shí)間應(yīng)早于f2的修改時(shí)間
學(xué)習(xí)過計(jì)算機(jī)語言的朋友都知道,在計(jì)算機(jī)語言里,使用and ,or 分別表示“與”和“或”的關(guān)系。在Linux系統(tǒng)的查找命令中一樣通用。
還有這樣的例子,
find / -user fred -or -user george
我們可以解釋為在/tmp目錄中查找屬于fred或者george這兩個(gè)用戶的文件。
在find命令中還可以使用“非”的關(guān)系來查找文件,如果我們要在/tmp目錄中查找所有不屬于panda的文件,使用一個(gè)簡(jiǎn)單的
find /tmp ! -user panda
更好的利用find
7.快速執(zhí)行上一次的find命令而不用重復(fù)輸入?yún)?shù)
!find
事實(shí)上,”!”可以用在任何unix/linux命令的前面,以執(zhí)行上一條同種類型的命令。
8.改變顯示結(jié)果
find對(duì)文件執(zhí)行的標(biāo)準(zhǔn)行為是顯示出文件名,這就是為什么如果你跟蹤結(jié)果,就會(huì)看到一系列文件名的原因。如果你想使用這些結(jié)果作為另外一個(gè)過濾器的輸入的話,
這將會(huì)十分有用。但是如果你需要結(jié)果的更多信息,你可以令find輸出與ls –l同樣的結(jié)果:
find -user gary -iname “*.html” -ls
這個(gè)命令將會(huì)返回文件權(quán)限和時(shí)間信息。
9.將搜索結(jié)果作為程序的輸入
可以通過使用“-exec”參數(shù),來讓find命令對(duì)每個(gè)搜索結(jié)果運(yùn)行任何程序。
如果要?jiǎng)h除當(dāng)前目錄中所有擴(kuò)展名為“.tmp”的文件。
find -name “.tmp” -exec rm {} \ ; //注意結(jié)尾分號(hào)
上面兩個(gè)大括號(hào)將會(huì)被相應(yīng)的文件名代替,反斜杠用來告訴find何時(shí)命令結(jié)束。
find常和chmod結(jié)合使用快速改變大量文件的文件權(quán)限,或者和grep與sed結(jié)合使用來選擇性的搜索或使用正則表達(dá)式修改文本。使用它作為一個(gè)腳本的輸入,
你可以讓費(fèi) 時(shí)的任務(wù)自動(dòng)完成,例如清除一年內(nèi)沒有訪問的文件,或者自動(dòng)備份修改的文件。
10.查找并顯示文件的方法
查找到某個(gè)文件是我們的目的,我們更想知道查找到的文件的詳細(xì)信息和屬性,如果我們采取現(xiàn)查找文件,在使用LS命令來查看文件信息是相當(dāng)繁瑣的,
現(xiàn)在我們也可以把這兩個(gè)命令結(jié)合起來使用。
find / -name “httpd.conf” -ls
系統(tǒng)查找到httpd.conf文件后立即在屏幕上顯示httpd.conf文件信息。
rw-r–r– 1 root rootDec 30 15:36 /etc/httpd/conf/httpd.conf
下面的表格就是一些常用的查找文件并顯示文件信息的參數(shù)和使用方法
選項(xiàng)
用途描述
-exec command
查找并執(zhí)行命令
-fprint file
打印文件完整文件名
-fprint0 file
打印文件完整文件名包括空的文件
-fprintf file format
打印文件格式
-ok command
給用戶命令執(zhí)行操作,根據(jù)用戶的Y確認(rèn)輸入執(zhí)行
-printf format
打印文件格式
-ls
打印同種文件格式的文件
參考:
.linux/unix中如何用find命令詳解
.使用 UNIX find 命令的高級(jí)技術(shù)
.10 Example of find command in Unix and Linux (對(duì)find命令的基本用法以及高級(jí)技巧都有介紹)
.Top 10 examples of find command in unix and linux
.Find Command in Unix and Linux Examples (極豐富的關(guān)于find命令的例子)
.A Unix/Linux “find” Command Tutorial (實(shí)用的,短小精悍的教程)
linux RH 9.0 終端命令里find 和greep的區(qū)別是什么。兩個(gè)都是查找文件
find是用來查找物仔文件的
grep是用來匹配字符的
find . -name a.txt -print
grep txt a.txt
前一個(gè)是搜索a.txt文件笑褲,后一個(gè)是查看a.txt文件中是否包含碰螞簡(jiǎn)txt字符
linux find grep的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux find grep,Linux文件查找:使用find和grep命令,如何使用Unix/Linux find命令,linux RH 9.0 終端命令里find 和greep的區(qū)別是什么。兩個(gè)都是查找文件的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
名稱欄目:Linux文件查找:使用find和grep命令(linuxfindgrep)
網(wǎng)站路徑:http://fisionsoft.com.cn/article/ccsedch.html


咨詢
建站咨詢
