linux檔案查詢利器 非find莫屬

2021-09-21 10:17:08 字數 3272 閱讀 4523

昨天看到群裡在很多群友討論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...