日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux搜索关键字并定位,Linux系统中文件定位与查找(示例代码)

發(fā)布時(shí)間:2023/12/15 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux搜索关键字并定位,Linux系统中文件定位与查找(示例代码) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Linux系統(tǒng)中文件查找

關(guān)鍵詞?文件查找?|?find?|?locate

本文主要介紹有關(guān)文件查找的兩個(gè)命令——find和locate,以及壓縮打包的命令——compress, gzip,bzip2,xz等。有問(wèn)題或建議可發(fā)至郵箱[email?protected]

locate

locate命令是通過(guò)查詢Linux系統(tǒng)上預(yù)先構(gòu)建的文件索引數(shù)據(jù)庫(kù),準(zhǔn)確說(shuō)來(lái),這個(gè)數(shù)據(jù)庫(kù)默認(rèn)的位置是/var/lib/mlocate/mlocate.db,這個(gè)數(shù)據(jù)庫(kù)一般由系統(tǒng)定時(shí)周期性更新,當(dāng)然也可以通過(guò)updatedb命令手動(dòng)更新,但是花費(fèi)的時(shí)間周期可能很長(zhǎng),尤其在文件系統(tǒng)占用率很高的情況下。

locate命令查找的特點(diǎn):

查找速度快

模糊查找

非實(shí)時(shí)查找

命令格式及常用選項(xiàng):

locate [OPTION]... PATTERN...

-h, --help 查看幫助文檔

-i 忽略大小寫搜索

-n N 最多顯示N個(gè)匹配項(xiàng)目

-r, --regexp 支持進(jìn)行基本正則表達(dá)式匹配,默認(rèn)支持glob統(tǒng)配符

--regex 支持使用擴(kuò)展正則表達(dá)式

-c 統(tǒng)計(jì)搜索到匹配的條目,但不輸出具體條目

find命令

相對(duì)于locate命令,find命令查找有如下特點(diǎn)

查詢速度較快

精確查找

實(shí)時(shí)查找

語(yǔ)法:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...]

[expression]

[-H] [-L] [-P] 三選項(xiàng)用來(lái)控制處理符號(hào)鏈接文件

[-D] 控制dubug

[-O] 查詢,設(shè)置優(yōu)化等級(jí)

以上5個(gè)參數(shù)基本不用,如果需要使用,位置必須在路徑[path]之前

常用格式:

find [OPTION]... [查找路徑] [查找條件] [處理動(dòng)作]

查找路徑:指定需要查找的目錄,如果是當(dāng)前目錄,可用“.”代替

查找條件:指定查找標(biāo)準(zhǔn),可以是文件名、大小、權(quán)限等

處理動(dòng)作:對(duì)符合條件的文件進(jìn)行操作,默認(rèn)輸出至屏幕

接下來(lái)詳細(xì)介紹查找條件:

根據(jù)文件名查找

-name, 直接查找文件名,支持glob風(fēng)格查找

-iname, 不區(qū)分大小寫,支持glob風(fēng)格查找

-regex, 支持正則表達(dá)式查找文件名

-iregex, 不區(qū)分大小寫,支持正則表達(dá)式查找文件名

注意:如果對(duì)glob不了解,可以用man 7 glob查看

根據(jù)文件從屬關(guān)系查找

-user, 根據(jù)屬主查找

-group, 根據(jù)屬組查找

-uid 根據(jù)屬主id查找

-gid 根據(jù)屬組id查找

-nouser 判斷是否屬于無(wú)屬主文件

-nogroup 判斷是否屬于無(wú)屬組文件

根據(jù)文件類型查找

-type

常見文件類型有

f 普通文件

d 目錄文件

l 符號(hào)鏈接文件

b 塊文件

c 字符設(shè)備文件

p 管道文件

s 套接字文件

以文件大小查找

-size[+|-] UNIT

常用單位:k, M, G

以時(shí)間戳查找

以“天”為單位:

-atime[+|-]

-mtime

-ctime

以“分鐘”為單位:

-amin

-mmin

-cmin

根據(jù)權(quán)限查找

-perm [/|-] mode

mode: 精確權(quán)限匹配

-mode

/mode: 任何一類用戶的權(quán)限滿足即可

+mode: 已廢棄這種用法

處理動(dòng)作

-print 輸出至標(biāo)準(zhǔn)輸出,默認(rèn)的動(dòng)作

-ls 類似于對(duì)查找的文件執(zhí)行"ls -l"命令,輸出文件的詳細(xì)信息

-delete 刪除查找到的文件

-fls file 把查找到的所有文件的長(zhǎng)格式信息保存到指定文件

-ok CMD {} \; 執(zhí)行CMD,執(zhí)行前詢問(wèn)

-exec CMD {} \; 執(zhí)行CMD

組合測(cè)試

各個(gè)條件之間默認(rèn)是以“與”連接,如果需要使用其他組合測(cè)試,必須加上

-a 與

-o 或

-not, ! 非

德·摩根定律

(非 P) 或 (非 Q) = 非(P 且 Q)

(非 P) 且 (非 Q) = 非(P 或 Q)

練習(xí)

1、查找/var目錄下屬主為root,且屬組為mail的所有文件或目錄;

# find /var -user root -group mail

2、查找/usr目錄下不屬于root、lp或gdm的所有文件或目錄;

# find /usr -not -user root -a -not -user lp -a -not -user gdm

# find /usr -not \( -user root -o -user lp -o -user gdm \)

3、查找/etc目錄下最周一周內(nèi)其內(nèi)容修改過(guò),同時(shí)屬主不為root,也不是postfix的文件或目錄;

# find /etc -mtime -7 -a -not -user root -a -not -user postfix

# find /etc/ -mtime -7 -a -not \( -user root -o -user postfix \)

4、查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M,且最近一個(gè)周內(nèi)曾被訪問(wèn)過(guò)的文件或目錄;

# find / \( -nouser -o -nogroup \) -a -atime -7

# find / \( -atime -7 -nouser -o -nogroup \) -ls

5、查找/etc目錄下大于1M且類型為普通文件的所有文件;

# find /etc -size +1M -type f

6、查找/etc目錄下所有用戶都沒有寫權(quán)限的文件;

# find /etc -not -perm 222 -type f -ls

總結(jié)

以上是生活随笔為你收集整理的linux搜索关键字并定位,Linux系统中文件定位与查找(示例代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。