Linux文件查找詳解
10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有昌邑免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
我們之前學(xué)過的grep、egrep以及fgrep命令是Linux的文本查找命令,只是單純地匹配字符串的命令,而不是文件查找命令。
·文件查找的常用命令
1,locate:
locate是在全系統(tǒng)查找文件的命令,但是locate的查找是非實(shí)時(shí)的、非精確的,進(jìn)行模糊匹配的一種查找方式,因?yàn)榇朔N文件查找的方式是根據(jù)全系統(tǒng)文件數(shù)據(jù)庫進(jìn)行的,而該數(shù)據(jù)庫只有在每天晚上才會(huì)更新,因此是非實(shí)時(shí)查找,但是這個(gè)文件數(shù)據(jù)庫我們可以手動(dòng)生成,為了使我們可以實(shí)時(shí)的查找文件,我們可以手動(dòng)更新該數(shù)據(jù)庫。
生成文件數(shù)據(jù)庫的命令:updatedb
優(yōu)點(diǎn):locate命令執(zhí)行速度快

2,find:
find命令支持實(shí)時(shí)查找,精確查找,而且支持多種查找標(biāo)準(zhǔn),但是find命令的執(zhí)行速度慢,這是因?yàn)閒ind命令是遍歷指定目錄下的所有文件進(jìn)行查找,所以執(zhí)行速度慢。
用法格式:
->find 查找路徑 查找標(biāo)準(zhǔn) 查找以后的處理動(dòng)作
查找路徑可以省略,省略以后就表示默認(rèn)查找當(dāng)前目錄
查找標(biāo)準(zhǔn)默認(rèn)為查找指定路徑下的所有文件
查找處理動(dòng)作(action),默認(rèn)為輸出至標(biāo)準(zhǔn)輸出

(1)查找(匹配)標(biāo)準(zhǔn)(選項(xiàng)):
->-name(嚴(yán)格區(qū)分大小寫查找) 'filename':對(duì)文件名做精確匹配

支持文件名通配
*->用來實(shí)現(xiàn)匹配任意長(zhǎng)度的任意字符

?->用來實(shí)現(xiàn)匹配單個(gè)字符

[]->用來實(shí)現(xiàn)匹配指定范圍內(nèi)的任意單個(gè)字符

->-iname:文件名匹配不區(qū)分大小寫

->-regex:基于正則表達(dá)式進(jìn)行文件名查找
格式:-regex pattern
->-user:根據(jù)文件的屬主來進(jìn)行文件的查找
格式:-user username

->-group:根據(jù)文件的屬組來進(jìn)行文件的查找
格式:-group groupname

->-uid:根據(jù)uid查找,一旦某個(gè)用戶被刪除之后,此前所有屬于這個(gè)用戶的文件的屬主將變?yōu)檫@個(gè)用戶的id號(hào)

格式:-uid uid

->-gid:根據(jù)gid查找,一旦某個(gè)用戶的屬組被刪除之后,此前所有屬于這個(gè)用戶基本組的文件的屬組將變成這個(gè)用戶的基本組id號(hào)

格式:-gid gid

->-nouser:查找沒有屬主的文件

->-type:根據(jù)文件類型來查找文件
f:普通文件

d:目錄

c:字符設(shè)備

b:塊設(shè)備

l:鏈接文件

p:管道設(shè)備

s:套接字設(shè)備

->-size:根據(jù)文件大小來查找文件
[+|-]#:+表示大于,-表示小于,#表示數(shù)值大小(不加+|-表示等于),只寫#表示精確查找。
k表示KB
M表示MB
G表示GB

大小匹配的法則:精確查找時(shí)會(huì)有誤差,但是誤差一般小于1,且小于所要匹配的數(shù)值。
·組合條件查找,默認(rèn)為邏輯與關(guān)系
->-a:邏輯與關(guān)系

->-o:邏輯或關(guān)系

->-not:邏輯非關(guān)系
.jpg)
練習(xí):
1,查找/tmp目錄下,不是目錄且不是套接字類型的文件

2,查找/tmp/test目錄下,屬主不是user1,也不是user2的文件

·根據(jù)時(shí)間戳查找文件
時(shí)間為天數(shù):
格式:
->-mtime [+|-]#:修改時(shí)間

->-ctime [+|-]#:改變時(shí)間

->-atime [+|-]#:訪問時(shí)間

->#表示距離現(xiàn)在的第#天有動(dòng)作,+#表示距離現(xiàn)在的第#天之前有動(dòng)作,-#表示距離現(xiàn)在的第#天之后有動(dòng)作

時(shí)間為分鐘
格式:
->-mmin [+|-]#:修改時(shí)間

->-cmin [+|-]#:改變時(shí)間

->-amin [+|-]#:訪問時(shí)間

->#表示距離現(xiàn)在的第#分鐘有動(dòng)作,+#表示距離現(xiàn)在的第#分鐘之前有動(dòng)作,-#表示距離現(xiàn)在的第#分鐘之后有動(dòng)作

·根據(jù)權(quán)限來查找
格式:
->-perm MODE:表示精確匹配

->-perm +MODE:三位權(quán)限任意一位匹配即滿足條件

->-perm -MODE:文件權(quán)限能完全包含此MODE才符合條件

(2)查找以后的處理動(dòng)作(action):
默認(rèn)為-print(顯示出來)

->-ls:類似于命令ls -l的形式顯示每一個(gè)文件的詳細(xì)信息

->-ok:-ok表示處理動(dòng)作的每一步都需要用戶確認(rèn)
固定格式:-ok COMMAND {} \;

花括號(hào)表示的是前面find命令查找到的文件名
->-exec:-exec的處理動(dòng)作不需要用戶確認(rèn),一氣呵成
固定格式:-exec COMMAND {} \;

練習(xí):
1,查找/var目錄下屬主為root并且屬組為mail的所有文件

2,查找/usr目錄下不屬于root、bin或student的文件


3,查找/etc目錄下最近一周內(nèi)內(nèi)容修改過且不屬于root及student用戶的文件

4,查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M且最近一天內(nèi)曾被訪問過的文件,并將其屬主屬組均修改為root

5,查找/etc目錄下大于1M的文件,并將其文件名寫入/tmp/etc/largefiles

xargs方法:

6,查找/etc目錄下所有用戶都沒有寫權(quán)限的文件,顯示出其詳細(xì)信息

分享標(biāo)題:Linux文件查找
URL地址:http://chinadenli.net/article28/jgghcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站排名、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)