昨天看到群裡在很多群友討論find命令,那麼今天我就和大家聊聊工作中的find命令的使用:
一、find語法
usage:find pathname [-option] [-exec|-ok command] {} \;
二、find引數
1
按檔案名字查詢
1
按檔案許可權查詢
1
按檔案屬主查詢
1
按檔案屬組查詢
1
查詢無有效屬主的檔案,即檔案的屬組在
/etc/groups
中不存在
1
#查詢無有效屬組的檔案,即檔案的屬主在/etc/groups中不存在
1
按檔案更改時間來查詢檔案,-n指n天(分鐘)以內,+n指n天(分鐘)以前
1
按檔案訪問時間來查詢檔案,-n指n天(分鐘)以內,+n指n天(分鐘)以前
1
按檔案建立時間來查詢檔案,-n指n天(分鐘)以內,+n指n天(分鐘)以前
1
查詢更改時間比f1新但比f2舊的檔案
1
查詢塊裝置,目錄,字元裝置,管道、符號鏈結、普通檔案
1
查長度為n塊[或n位元組]的檔案
1
查詢於某一型別檔案系統中的檔案,這些檔案系統型別通常可在
/etc/fstab
中找到
1
查檔案時不跨越檔案系統
mount
點
1
如果遇到符號鏈結檔案,就跟蹤鏈結所指的檔案
1
忽略某個目錄,如果同時使用了-depth選項,那麼-prune選項將被
find
命令忽略。
三、find案列
1、查詢指定目錄下大於300m的檔案,並將其移動到指定的路徑中
1
2
# find ~ -size +300m
# find ~ -size +300m -exec mv {} ~/sql/ \;
2、查詢指定目錄下大於300m的檔案,並將其刪除的兩種方式
1
2
# find ./ -size +300m -delete
# find ./ -size +300m -exec rm -rf {} \;
3、查詢指定目錄下大於1g而小於1.5g的檔案
1
# find ./ -size +1g -size -1.5g
4、查詢指定目錄下非.sh結尾的檔案的兩種方法
1
2
# find ./ -not -name '*.sh'
# find ./ ! -name '*.sh'
5、刪除7天前對資料庫的備份檔案
1
# find /bakcup/ -type f -name '*.sql' -mtime +7 -exec rm -rf {} \;
6、查詢當前目錄下以.sh結尾的檔案,但是排除子目錄為script目錄下的檔案
1
# find . -path './script' -prune -o -name '*.sh'
7、查詢當前目錄下以.py結尾的檔案,並將其修改為.pyc
1
# find ./ -name '*.py' -exec mv {} '{}c' \;
8、查詢當前目錄下所有檔案,並把檔案中的hello字串替換成hello
1
2
3
# echo 'hello world!' > test01.txt
# echo 'hello teacher!' > test02.txt
# find ./ -type f -exec sed -i 's@hello@hello@g' {} \;
四、find搭配日誌重點闡述
atime(access time):訪問時間;指的是檔案最後讀取的事件,可以使用touch命令更改當前時間
ctime(change time):變更時間;指的是檔案本身最後被變更的事件,變更動作是chmod、chgrp、mv等
mtime(modify time):修改時間,指的是檔案內容最後被修改的事件,修改動作echo重定向、vim等
find pathname [-/+]num
第乙個引數:查詢檔案的路徑名
第二個引數:前面的字母a、c、m分別表示訪問、變更、修改;time為日期,min為分鐘
第三個引數:不該符號表示符合這個值得,'-'表示以內的,'+'表示以前的
1
# find ./ -atime 0
1
# find ./ -mmin -10 -min +5
1
2
3
# find ./ -type f | xargs chmod 755
# find ./ -type f | xargs echo '' > /root/filename.log
# find ./ -type f | xargs rm -rf
網上的一篇文章:
find mtime的事件演算法:
linux檔案查詢利器 非find莫屬
昨天看到群裡在很多群友討論find命令,那麼今天我就和大家聊聊工作中的find命令的使用 一 find語法 usage find pathname option exec ok command 二 find引數 1 按檔案名字查詢 1 按檔案許可權查詢 1 按檔案屬主查詢 1 按檔案屬組查詢 1 查...
linux檔案查詢
命令與檔案的查詢 which 尋找執行檔案 which a command a 將所有由path目錄中可以找到的命令均列出來,而不只是第乙個被找到的命令名稱 eg which a ifconfig 檔案的查詢 whereis 尋找特定的檔案 bmsu 檔案或者目錄 引數 b 只尋找二進位制檔案 m ...
linux 檔案查詢
文字查詢 grep egrep fgrep 檔案查詢 locate find locate和find的區別 locate有自維護的資料庫 linux自建,與所有檔案關聯 每天linux會定時對其進行更新,而locate就在此資料庫中查詢,所以查詢速度非常快,但是缺點也很明顯,不能實時查詢 比如剛裝l...