Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
關(guān)注本頭條號(hào),每天堅(jiān)持更新原創(chuàng)干貨技術(shù)文章。
如需學(xué)習(xí)視頻,請(qǐng)?jiān)谖⑿潘阉鞴娞?hào)“智傳網(wǎng)優(yōu)”直接開(kāi)始自助視頻學(xué)習(xí)
1. 前言
本文主要講解在Linux系統(tǒng)上如何使用find命令
find命令怎么用
2. `find`命令的使用方法
要開(kāi)始搜索整個(gè)硬盤(pán),您需要輸入以下內(nèi)容:
find /
但是,如果您想開(kāi)始搜索當(dāng)前所在的文件夾,那么可以使用find命令以下語(yǔ)法:
find .
當(dāng)您想在整個(gè)硬盤(pán)中按名稱搜索文件時(shí),請(qǐng)使用find命令以下語(yǔ)法:
假設(shè)你要搜索的文件名為filename
find / -name filename
find命令的第一部分顯然是單詞find。
第二部分是從哪里開(kāi)始搜索。即指定目錄,它會(huì)自動(dòng)搜索指定目錄里的子目錄
第三部分是一個(gè)表達(dá)式,它決定要查找什么。
最后一部分是要找的文件名。
find命令使用方法
3. `find`命令搜索位置的快捷方式
find之后的第一個(gè)參數(shù)是要搜索的位置。雖然可以指定特定的目錄,但是大多數(shù)人使用元字符作為替代。使用這個(gè)命令的三個(gè)元字符包括:
句點(diǎn):指定當(dāng)前文件夾和所有嵌套文件夾
左斜杠/:指定整個(gè)文件系統(tǒng)
波浪符號(hào)~:指定活動(dòng)用戶的主目錄
提示:搜索整個(gè)文件系統(tǒng)可能會(huì)產(chǎn)生許多訪問(wèn)拒絕錯(cuò)誤。一般的用戶賬號(hào)都會(huì)遇到權(quán)限的問(wèn)題,這時(shí),應(yīng)該使用提升的特權(quán)運(yùn)行該命令(例如,使用sudo)。
表達(dá)式
最常用的表達(dá)式是-name。name表達(dá)式允許搜索文件或文件夾的名稱。
然而,你也可以用其他的表達(dá)方式:
-amin n: 該文件最后一次訪問(wèn)是在n分鐘前
-anewer: 最后一次訪問(wèn)該文件的時(shí)間比修改該文件的時(shí)間晚
-atime n: 該文件最后一次被訪問(wèn)是在n天前
-cmin n: 文件最后一次更改是在n分鐘前
-cnewer: 文件最后一次更改的時(shí)間比文件修改的時(shí)間更近
-ctime n: 文件最后一次更改是在n天前
-empty: 文件為空
-executable: 該文件是可執(zhí)行的
-false: 總是錯(cuò)誤的
-fstype type: 該文件位于指定的文件系統(tǒng)上
-gid n: 該文件屬于ID為n的組
-group groupname: 該文件屬于指定的組
-ilname pattern: 搜索符號(hào)行,但忽略大小寫(xiě)
-iname pattern: 搜索文件但忽略大小寫(xiě)
-inum n: 搜索具有指定節(jié)點(diǎn)的文件
-ipath path: 搜索路徑但忽略大小寫(xiě)
-iregex expression: 搜索表達(dá)式但忽略大小寫(xiě)
-links n: 搜索具有指定鏈接數(shù)量的文件
-lname name: 搜索符號(hào)鏈接
-mmin n: 文件的數(shù)據(jù)最后一次修改是在n分鐘之前
-mtime n: 文件的數(shù)據(jù)上次修改是在n天前
-name name: 搜索具有指定名稱的文件
-newer name: 搜索最近編輯的文件,而不是給定的文件
-nogroup: 搜索沒(méi)有組id的文件
-nouser: 搜索沒(méi)有附加用戶的文件
-path path: 查找路徑
-readable: 查找可讀的文件
-regex pattern: 搜索匹配正則表達(dá)式的文件
-type type: 搜索特定類(lèi)型
-uid uid: 文件數(shù)字用戶id與uid相同
-user name: 文件由指定的用戶擁有
-writable: 搜索可寫(xiě)入的文件
4. `find`命令使用案例
find命令使用案例
如何查找訪問(wèn)文件超過(guò)一定天數(shù)的前幾天
要查找100天前訪問(wèn)過(guò)的主文件夾中的所有文件,請(qǐng):
find ~ -atime 100
如何找到空的文件和文件夾
要查找系統(tǒng)中的所有空文件和文件夾:
find / -empty
如何找到所有的可執(zhí)行文件
要在你的電腦上找到所有可執(zhí)行文件:
find / -exec
如何找到所有可讀的文件
要找到所有可讀的文件:
find / -read
模式
在搜索文件時(shí),可以使用模式。例如,搜索擴(kuò)展名為mp3的所有文件:
find / -name *.mp3
如何將Find命令的輸出發(fā)送到文件
find命令的主要問(wèn)題是,它有時(shí)會(huì)返回太多的結(jié)果,無(wú)法一次性查看。通過(guò)管道將輸出輸出到tail命令,或者您可以將這些行輸出到一個(gè)文件中,如下所示:
find / -name *.mp3 -fprint nameoffiletoprintto
如何查找并對(duì)文件執(zhí)行命令
同時(shí)搜索和編輯一個(gè)文件:
find / -name filename -exec nano '{}' \;
上面的命令搜索一個(gè)名為filename的文件,然后為它找到的文件運(yùn)行nano編輯器。
5. 結(jié)論
通過(guò)本文,你應(yīng)該對(duì)find命令怎么用有所了解了吧?這是Linux運(yùn)維中最常用的命令了,一定要學(xué)習(xí)使用。
本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時(shí)請(qǐng)?jiān)谡闹懈綆б韵骆溄樱?/p>
https://www.linuxrumen.com/rmxx/1291.html
關(guān)注本頭條號(hào),每天堅(jiān)持更新原創(chuàng)干貨技術(shù)文章。
如需學(xué)習(xí)視頻,請(qǐng)?jiān)谖⑿潘阉鞴娞?hào)“智傳網(wǎng)優(yōu)”直接開(kāi)始自助視頻學(xué)習(xí)
1. 前言
本文主要講解如何在Linux系統(tǒng)下使用命令行工具模糊查找文件,本文的工具包括find命令的用法也介紹grep命令的使用方法,同時(shí)也有find與grep兩者結(jié)合,能更精確根據(jù)條件查找文件。
linux模糊查找文件命令
2. 根據(jù)文件名模糊查找文件
例如:
在目錄/var/zcwyou里,找到.txt后綴的文件,文件名大小寫(xiě)敏感。即只能匹配.txt后綴的
[root@zcwyou ~]# find /var/zcwyou -name '*.txt'
在目錄/var/zcwyou里,找到.txt后綴的文件,忽略大小定。即可以匹配.txt后綴,也可以匹配.Txt后綴,也可以匹配.TXT后綴的文件。
[root@zcwyou ~]# find /var/zcwyou -iname '*.txt'
linux根據(jù)文件名模糊查找文件
3. 根據(jù)文件名和文件內(nèi)容模糊查找文件
使用方法:
結(jié)合find命令與xargs和grep -i ‘目標(biāo)匹配關(guān)鍵字’
案例1:
在當(dāng)前目錄搜索文件內(nèi)容含有某字符串(大小寫(xiě)敏感)的文件:
語(yǔ)法:
find /etc/ -type f | xargs grep '目標(biāo)關(guān)鍵詞'
案例2:
在/etc/目錄下,查找?guī)cwyou關(guān)鍵詞的文件
[root@zcwyou ~]# find /etc/ -type f | xargs grep 'zcwyou'
可以找到以下文件和文件對(duì)應(yīng)的內(nèi)容:
/etc/group-:zcwyou:x:1000:
/etc/gshadow-:zcwyou:!!::
/etc/passwd-:zcwyou:x:1000:1000:zcwyou:/home/zcwyou:/bin/bash
/etc/group:zcwyou:x:1000:zcwyou
/etc/shadow-:zcwyou:
是不是非常高效?
案例3:
在當(dāng)前目錄搜索文件內(nèi)容含有某字符串(忽略大小寫(xiě))的特定文件:
借用find命令查找當(dāng)前目錄下所有以.c后綴結(jié)尾的文件和子目錄里以.c后綴結(jié)尾的文件,并把結(jié)果以參數(shù)形式傳遞給grep,由grep進(jìn)行搜索和過(guò)濾。
[root@zcwyou ~]#find . -type f -name ‘*.c’ | xargs grep -i '目標(biāo)搜索關(guān)鍵詞'
linux根據(jù)文件名和文件內(nèi)容模糊查找文件
4. 使用`find`命令模糊查找linux文件
在當(dāng)前目錄下,模糊查找在系統(tǒng)中最后10分鐘訪問(wèn)的文件
[root@zcwyou ~]# find . -amin -10
在當(dāng)前目錄下,模糊查找在系統(tǒng)中最后48小時(shí)訪問(wèn)的文件
[root@zcwyou ~]# find . -atime -2
在當(dāng)前目錄下,查找在系統(tǒng)中為空的文件或者文件夾
[root@zcwyou ~]# find . -empty
在當(dāng)前目錄下,查找在系統(tǒng)中屬于group cat的文件
[root@zcwyou ~]# find . -group cat
模糊查找在系統(tǒng)中最后5分鐘里修改過(guò)的文件
[root@zcwyou ~]# find . -mmin -5
查找在系統(tǒng)中最后24小時(shí)里修改過(guò)的文件
[root@zcwyou ~]# find . -mtime -1
使用find命令模糊查找linux文件
5. 根據(jù)用戶屬性模糊查找Linux文件
查找在系統(tǒng)中屬于作廢用戶的文件
[root@zcwyou ~]# find . -nouser
查找在系統(tǒng)中屬于zcwyou這個(gè)用戶的文件
[root@zcwyou ~]# find . -user zcwyou
根據(jù)用戶屬性模糊查找Linux文件
6. 通過(guò)文件大小模糊查找文件
查找根目錄下超過(guò)1M的文件,并打印
[root@zcwyou ~]# find / -size +1M -type f -print
查找當(dāng)前目錄下等于500字節(jié)的文件,包括子目錄,并打印結(jié)果
[root@zcwyou ~]# find -size 500c -print
查找home目錄下小于600k的文件
[root@zcwyou ~]# find /home -size -600k -print
linux通過(guò)文件大小模糊查找文件
7. 通過(guò)文件新舊查找文件
查找比old.txt新的文件
[root@zcwyou ~]# find -newer "old.txt" -type f -print
查找比newer.txt舊的文件
[root@zcwyou ~]# find ! -newer "newer.log" -type f -print
查找比old.txt新,比newer.txt舊的文件
[root@zcwyou ~]# find -newer 'old.txt' ! -newer 'newer.txt' -type f -print
本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時(shí)請(qǐng)?jiān)谡闹懈綆б韵骆溄樱?/p>
https://www.linuxrumen.com/rmxx/1137.html
點(diǎn)擊了解更多,快速查看更多的技術(shù)文章列表。
關(guān)注本頭條號(hào),每天堅(jiān)持更新原創(chuàng)干貨技術(shù)文章。
如需學(xué)習(xí)視頻,請(qǐng)?jiān)谖⑿潘阉鞴娞?hào)“智傳網(wǎng)優(yōu)”直接開(kāi)始自助視頻學(xué)習(xí)
1. 前言
本文主要介紹Linux系統(tǒng)下有哪些全局搜索命令,并講解相關(guān)命令的使用方法與日常使用案例。
我們先來(lái)了解一下Linux下主要的5個(gè)全局搜索的命令工具。他們分別是find,locate,grep,which,whereis
其中,find是一個(gè)強(qiáng)大實(shí)時(shí)搜索工具,Linux支持的文件類(lèi)型它都可以搜索到,locate一般是搜索文件,grep一般是搜索文本文件,which和whereis一般是用于搜索程序相關(guān)的文件內(nèi)容。
linux全局搜索命令
2. Linux使用find命令全局搜索文件
find命令在某個(gè)目錄下查找。
一般使用格式:
find <pathname> <-option> <filetype> <action>
-pathname:所要查找的目錄及其所有子目錄(默認(rèn)遞歸查找)。默認(rèn)為當(dāng)前目錄。
-option:指定參數(shù)。
-filetype:想要查找的文件類(lèi)型。
-action:對(duì)查找結(jié)果進(jìn)行的處理。
在linux的日常管理中,使用find命令全局搜索文件的使用頻率很高,熟練掌握以及靈活運(yùn)用對(duì)提高工作效率很有幫助。
find的語(yǔ)法比較簡(jiǎn)單,常用參數(shù)的就那么幾個(gè),比如-name、-type、-ctime等。本文只是介紹其中一些常用的使用案例,如果需要更多的幫助,請(qǐng)參考find的使用手冊(cè)。
2.1 Linux使用`find`命令根據(jù)文件名全局搜索文件
搜索當(dāng)前目錄下名字為mypic.png的文件
[root@zcwyou ~]# find . -name "mypic.png"
搜索當(dāng)前目錄下所有的jpg文件
[root@zcwyou ~]# find . -name "*.jpg"
搜索當(dāng)前目錄下的jpg文件和png文件
[root@zcwyou ~]# find . -name "*.jpg" -o -name "*.png"
搜索當(dāng)前目錄下不是以png結(jié)尾的文件
[root@zcwyou ~]# find . ! -name "*.png"
2.2 使用`find`命令根據(jù)正則表達(dá)式全局查找文件
搜索當(dāng)前目錄下,文件名以數(shù)字+png后綴結(jié)尾的文件。
[root@zcwyou ~]# find . -regex "\./*[0-9]+\.png"
2.3 使用`find`命令和指定的目錄路徑查找文件
搜索當(dāng)前目錄下,路徑中包含folder的文件/路徑。
[root@zcwyou ~]# find . -path "*folder*"
2.4 使用`find`命令根據(jù)文件類(lèi)型查找
通過(guò)-type進(jìn)行文件類(lèi)型的過(guò)濾。
比如,搜索當(dāng)前目錄下,路徑中包含zcwyou的文件
[root@zcwyou ~]# find . -type f -path "*zcwyou*"
2.5 Linux根據(jù)搜索深度查找文件
搜索當(dāng)前目錄下所有以txt后綴結(jié)尾的文件,不包括子目錄。
[root@zcwyou ~]# find . -maxdepth 1 -name "*.txt"
相對(duì)應(yīng)的,也是mindepth選項(xiàng)。
[root@zcwyou ~]# find . -mindepth 2 -maxdepth 2 -name "*.png"
2.6 Linux使用`find`命令根據(jù)文件大小搜索文件
通過(guò)-size來(lái)過(guò)濾文件尺寸。支持的文件大小單元如下
- b 表示塊(512字節(jié))
- c 表示字節(jié)
- w 表示字(2字節(jié))
- k 表示千字節(jié)
- M 表示兆字節(jié)
- G 表示吉字節(jié)
比如,使用find命令搜索當(dāng)前目錄下文件大小超過(guò)100M的文件
[root@zcwyou ~]# find . -type f -size +100M
2.7 根據(jù)文件的訪問(wèn)、修改、變化時(shí)間全局搜索文件
支持下面的時(shí)間類(lèi)型。
全局查找的案例1:搜索1天內(nèi)被修改過(guò)的文件
[root@zcwyou ~]# find . -type f -mtime -1
全局查找的案例2:搜索最近1周內(nèi)被訪問(wèn)過(guò)的文件
[root@zcwyou ~]# find . -type f -atime -7
將日志目錄里超過(guò)一周的日志文件,移動(dòng)到/tmp/log里。
[root@zcwyou ~]# find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/log \;
注意:{} 用于與-exec選項(xiàng)結(jié)合使用來(lái)匹配所有文件,然后會(huì)被替換為相應(yīng)的文件名。
另外,\;用來(lái)表示命令結(jié)束,如果沒(méi)有加,則會(huì)有如下提示
find: -exec: no terminating ";" or "+"
關(guān)于find命令更多的使用方法請(qǐng)參考本站的另一帖
Linux find命令查找文件34個(gè)實(shí)用案例
根據(jù)文件的訪問(wèn)、修改、變化時(shí)間全局搜索文件
3. Linux使用`locate`命令全局搜索文件
locate命令在系統(tǒng)的全局范圍內(nèi)查找。
一般使用格式:
locate <-option> <filetype>
-option:指定參數(shù)。
-filetype:想要查找的文件類(lèi)型。
locate常用參數(shù)
-d:指定要查找的數(shù)據(jù)庫(kù)路徑
-h: 顯示輔助訊息
-i:忽略大小寫(xiě)
-q:安靜模式,不會(huì)顯示任何錯(cuò)誤訊息。
-n:至多顯示 n個(gè)輸出。
-r: 使用正規(guī)運(yùn)算式 做尋找的條件。
-o: 指定資料庫(kù)存的名稱。
-V: 顯示程式的版本訊息
簡(jiǎn)單的使用案例:
[root@zcwyou ~]# locate abc.txt
/usr/share/123/456/abc.txt
提示
locate是從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),而不是從文件系統(tǒng)中讀取。從數(shù)據(jù)庫(kù)中讀取時(shí)是讀取updatedb命令返回的結(jié)果:
而updatedb命令默認(rèn)是一天(24小時(shí))才自動(dòng)運(yùn)行一次,這就意味著如果是最新創(chuàng)建的文件,使用locate命令可能查找不到。
所以在使用locate命令前,先手動(dòng)運(yùn)行updatedb命令(需要root權(quán)限),非root用戶可以借助sudo取得root權(quán)限:
[root@zcwyou ~]# updatedb
Linux使用locate命令全局搜索文件
4. Linux使用`grep`命令對(duì)文本文件進(jìn)行全局搜索關(guān)鍵字
和find及l(fā)ocate命令不同的是,grep命令是在指定文件中搜索特定的內(nèi)容,然后將包含有這些匹配內(nèi)容的行輸出到標(biāo)準(zhǔn)輸出。如果不指定文件名,則從標(biāo)準(zhǔn)輸入讀取內(nèi)容。grep命令經(jīng)常和find等命令結(jié)合使用,其中g(shù)rep常充當(dāng)“過(guò)濾器”的角色。
grep命令常用參數(shù)
-c: 只輸出匹配行的行數(shù)。
-h: 查詢多文件時(shí)不顯示文件名。
-I: 不區(qū)分大小寫(xiě)(只適用于單字符)。
-n: 顯示匹配的行和行號(hào)。
-s: 不顯示 不存在或無(wú)匹配文本 的錯(cuò)誤信息。
-v: 反向匹配,即顯示不包含匹配文本的所有行。
-R: 遞歸查詢,即連同子目錄中的文件一起查詢。
使用案例:
在當(dāng)前目錄下遞歸查找包含字符串"hello"的所有文件,并顯示匹配行的行號(hào)
格式:grep -Rn "搜索的關(guān)鍵字" ~
例如:
[root@zcwyou ~]# grep -Rn "www.linurumen.com" ~
Linux使用grep命令對(duì)文本文件進(jìn)行全局搜索關(guān)鍵字
5. 使用`which`命令全局搜索linux程序文件
which命令將在PATH變量指定的路徑中 查找某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果。也就是說(shuō),使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
例如,查看當(dāng)前環(huán)境下使用的是哪個(gè)bash:
[root@zcwyou ~]# which passwd
6. 使用`whereis`命令全局搜索linux程序文件
whereis命令用來(lái)定位二進(jìn)制文件(參數(shù)-b)、源代碼文件(參數(shù)-s)和幫助手冊(cè)文件(即man文件,參數(shù)-m)。如果省略參數(shù),則返回所有信息。
whereis命令使用案例
[root@zcwyou ~]# whereis bash
7. 總結(jié):
上面介紹的linux全局搜索命令有5個(gè),每個(gè)都有特定的功能,每一個(gè)系統(tǒng)運(yùn)維人員都要牢記和掌握它的使用方法,隨時(shí)能高效查找和搜索目標(biāo)文件。
本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時(shí)請(qǐng)?jiān)谡闹懈綆б韵骆溄樱?/p>
https://www.linuxrumen.com/rmxx/1139.html
點(diǎn)擊了解更多,快速查看更多的技術(shù)文章列表。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。