快乐炸金花2..81老版本|真钱炸金花推荐

巴中熱線

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

查看: 1121|回復: 0
打印 上一主題 下一主題

[電腦網絡] Linux下查找文件find命令用法詳解 刪除指定天數前日志文件

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2018-11-13 15:36:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

注冊巴中熱線論壇,交好友享優惠,衣食住行吃喝玩樂盡在 BZHOT.com

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊

x
Linux下查找文件的命令有兩個:locate 和 find
locate這個命令是對其生成的數據庫進行遍歷(生成數據庫的命令:updatedb),這一特性決定了用locate查找文件速度很快,但是locate命令只能對文件進行模糊匹配,在精確度上來說差了點,簡單介紹下它的兩個選項:

locate
-i    //查找文件的時候不區分大小寫,比如:locate –i passwd
-n    //只顯示查找結果的前N行,比如:locate -n 5 passwd

命令格式 :
find [指定查找目錄] [查找規則] [查找完后執行的action]

1)根據文件名查找
-name    //根據文件名查找(精確查找)
-iname    //根據文件名查找,但是不區分大小寫

//查找/etc /tmp /root三個目錄下的passwd文件
find /etc /tmp /root -name passwd

//查找/etc /tmp目錄下passwd開頭的文件
find /etc /tmp -name "passwd?"

//查找/etc目錄下no開頭的文件
find /etc/ -name "no*.conf"

* 表示 通配任意的多個字符
? 表示 通配任意的單個字符
[ ]表示 通配括號里面的任意一個字符

2)根據文件所屬用戶和組來查找文件
-user    //根據屬主來查找文件
-group    //根據屬組來查找文件


3)根據uid 和 gid來查找用戶

//查找uid是500 的文件
find  /tmp  -uid  500

//查找gid是1000的文件
find  /tmp  -gid  1000


4)-a  and  -o  and  –not的使用

//查找/etc目錄下所有的conf文件,并用戶權限是root
find /etc -name "*.conf" -a -user root

//查找/etc目錄下所有的conf文件,并用戶權限不是ops
find /etc -name "*.conf" -not -user ops

-a 連接兩個不同的條件(兩個條件必須同時滿足)
-o 連接兩個不同的條件(兩個條件滿足其一即可)
-not 對條件取反的


5)根據文件時間戳的相關屬性來查找文件
//查看etc目錄下asound.conf文件的創建,訪問,修改時間
stat /etc/asound.conf

atime  //最近一次訪問時間
mtime  //最近一次內容修改時間
ctime  //最近一次屬性修改時間
* atime的單位指的是“天”,amin的單位是分鐘

//表示查找在五天內沒有訪問過的文件(也就是5天前天沒訪問的文件)
find  /tmp  –atime  +5

//表示查找在五天內訪問過的文件
find  /tmp  -atime  -5

//清理日志的時候,一般使用的是最近一次內容修改時間
find -mtime +30 -name "*[0-9]*" -exec rm {} \;


6)根據文件類型來查找文件
-type
f  // 普通文件
d  //目錄文件
l  //鏈接文件
b  //塊設備文件
c  //字符設備文件
p  //管道文件
s  //socket文件

//查找在/tmp 目錄下socket文件
find /tmp -type s


7)根據大小來查找文件
-size
find /tmp -size  2M    //查找在/tmp 目錄下等于2M的文件
find /tmp -size +2M    //查找在/tmp 目錄下大于2M的文件
find /tmp -size -2M    //查找在/tmp 目錄下小于2M的文件


8)根據文件權限查找文件
-perm
find /tmp -perm 755     //查找在/tmp目錄下權限是755的文件   
find /tmp -perm +222    //表示只要有一類用戶(屬主,屬組,其他)的匹配寫權限就行   
find /tmp -perm -222    //表示必須所有類別用戶都滿足有寫權限


//刪除查找到的超過30天沒有訪問過文件  
find  /tmp  -atime  +30  –exec rm –rf  {}  \;

刪除文件命令:
find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;

實例:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;

說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。

具體參數說明:
find:linux的查找命令,用戶查找指定條件的文件;
/opt/soft/log/:想要進行清理的任意目錄;
-mtime:標準語句寫法;
+30:查找30天前的文件,這里用數字代表天數;
"*.log":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除文件,包括目錄;
{} \; :固定寫法,一對大括號+空格+\+;



上一篇:Linux查看文件和文件夾大小 按條件刪除日志
下一篇:linux系統如何修改掛載mount共享文件夾的讀寫權限
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關閉

巴中熱線 - 精彩推薦上一條 /1 下一條

快速回復 返回頂部 返回列表
快乐炸金花2..81老版本