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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux搜索日志组合条件,find查找

發布時間:2023/12/9 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux搜索日志组合条件,find查找 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

find查找是生產中最常見的日志查找工具

下面看看它的用法

基本用法:

find ? ?查找路徑 ? ?查找標準 ? ?查找到以后的處理動作

查找路徑:需要被查找的文件所在的路徑,一定是個目錄,默認情況下為當前的目錄

查找的標準:查找的時候用什么方式去查找

處理動作:文件查找完畢后,需要對查找出來的文件進行處理的動作,默認情況下為顯示

查找深度的限制:

可以對查找中文件路徑的深度進行控制

-maxdepth ?#

查找標準:

查找的標準一般包括以下的幾部分:

名字,時間,權限,類型,大小,屬主和屬組

名字:

-name “filename”

基于文件名查找的時候支持通配符

*,?,[] , ?[^]

-iname ? ?文件名匹配時不區分大小寫

-regex ? ? 基于正則匹配文件名正則來查找

類型:

-type ? 基于文件的類型查找

f ? ?普通文件

d ? ?目錄

s ? ?套接字文件

l ? ? 鏈接文件

這里有個注意點 :

find 執行查找類型的時候是檢測文件本身的類型,比如A是鏈接文件A–>B,那么find判斷的是文件A的類型

與之相似的有一個叫 test 的命令,專用于檢測文件的類型,不過test檢測的時候是檢測B的類型

權限:

-perm ?MODE

mode ? 全部權限吻合才行

/mode ?給出的權限中只要滿足一個即可

-mode ? 文件權限包含時,即權限只能多,不能少

時間:

按時間來查找

-mtime

-ctime

-atime

[+|-]#

-mmin (分鐘計)

-cmin

-amin

三種時間后面可以跟 + – ?或者不加

+ ?代表的是超過

– ? 在…….的范圍內

不加為精確匹配

大小:

-size

利用大小查找的時候需要注意的是,大小的精確定位,+ ?和 – 的區別

查找10K的時候,是9-10K 的文件,而如果是? -10K? ?的話,? 代表的是0-9K,? +10K代表的是10K以上

根據這個原理,查找1G的文件,千萬別寫成1G,因為這樣會將幾K的文件都列出來,正確的寫法是1024M

如果要精確到字節那么需要使用? c 為單位

屬主和屬組:

-uid n :n 為數字,這個數字是用戶的賬號 ID,亦即 UID ,這個 UID 是記錄在 /etc/passwd 里面與賬號名稱對應的數字。

-gid n :n 為數字,這個數字是組名的 ID

-user name :name 為使用者賬號名稱

-group name:name 為組名喔,例如 users ;

-nouser :尋找文件的擁有者不存在 /etc/passwd 的用戶

-nogroup :尋找文件的擁有群組不存在于 /etc/group 的文件

其中 -nouser ?和 ?– nogroup 是可能存在的,比如你在網上下載了一個軟件,該軟件的擁有者并不再系統的用戶中,

或者事先已經有個賬戶,且在系統中運行產生了各種數據,后來你把用戶給刪除了,那么這些數據還在,此時就需要

用到上述兩個指令

執行動作

-print:顯示

-ls ? ?類似ls ?-l 的方式顯示文件

-ok ?COMMAND ?{} ? \; ?其中的{}是用來引用需要修改文件名

-exec COMMAND {} ?\; ?作用同 -ok ?稍有區別的是-ok需要用戶每步都確認,而-exec不需要用戶的確認

多個條件之間的邏輯組合

-a ?與關系,多個條件同時滿足的時候才滿足要求

-o ?或關系,多個條件中一個條件滿足就行

! ?not ? : ?非關系,即取反

德爾摩根定律:

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

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

使用-o條件時候需要注意的是? ?A -O B C 這個的邏輯是B與C 先相與,然后再進或的運算 如果需要A和B 或

運算之后再進行C操作,需要將A和B用括號括起來,且括號應該轉義

過濾機制:

-path ?“/path/to/directory” ?-a ?-prune

查找的時候排除目錄中的某一個子目錄

find實例運用:

(1) 查找/etc目錄下面,不是以.conf結尾的文件

find ?/etc ?-not ?-name ?“*.conf”

find ?/etc ?! ?-name ?“*.conf”

(2)尋找/home目錄下,既不是用戶joe? 也不是用戶 jane的文件

find ?/home ?-not ?-user ?joe ? -a ?-not ? -user ?jane

find? /home -not \( -user joe -o -user jane \) ? # 括號里面的內容不能緊貼括號,要有空格

括號需要轉義

(3)找出/tmp目錄下面,屬主不是root,且文件名不以f開頭的文件

find ?/tmp ?-not ?\( -user ? root ? -o ? -name “f*” \) ?-ls

find? /tmp ?\( -not -user root -a? -not? -name? “f*” \) ? -ls ?#注意括號,盡量使用括號括起來

(4)搜索/etc下面除了/etc/sane.d 目錄下的所有的以.conf結尾的文件

find ?/etc ? -path “/etc/sane.d” ? -a ? -prune ? -o ?-name ?“*.conf” ? -print

(5)搜索/etc下面除了/etc/sane.d 目錄和/etc/modprobe.d以外其他目錄下的所有的以.conf結尾的文件

find ?/etc ?\( ?-path ?“/etc/sane.d” ?-o ?-path ?“/etc/modprobe” ?\) ? -a ?-prune ? -o ? -name ?“*.conf”

(6)備份配置文件,添加.orig擴展名

find ?/etc ? -name ?“*.conf” ?-exec ?cp {} ? {}.orig ? \;

(7)在家目錄下面尋找可以被其他用戶寫入的文件,去除寫的權限

find ?/hone ? -perm ?-002 ?-exec chmod o-x {} ?\;

原創文章,作者:Double f,如若轉載,請注明出處:http://www.178linux.com/75016

總結

以上是生活随笔為你收集整理的linux搜索日志组合条件,find查找的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。