天天看點

find 指令_find指令 查找和搜尋檔案find指令 – 查找和搜尋檔案

find指令 – 查找和搜尋檔案

文法格式:find [參數] [路徑] [查找和搜尋範圍]

find 指令_find指令 查找和搜尋檔案find指令 – 查找和搜尋檔案

常用參數:

-name 按名稱查找
-size 按大小查找
-user 按屬性查找
-type 按類型查找
-iname 忽略大小寫
-exec 對查找出的資料進行相應處理
find /oldboy -type 檔案類型 -name "檔案名稱"find /oldboy -type f -mtime +10 -delete   --- 删除曆史資料資訊find /oldboy -type f -size  +10 -delete   --- 删除大于10k檔案find . -type f -name "access*.log" -mtime +7 -exec rm -f {} \;#保留7天之内的通路日志find /data -type f ! -name "test10" |xargs rm -f#排除test10的檔案,删除剩下的所有檔案
           

find指令的參數選項及說明

find 指令_find指令 查找和搜尋檔案find指令 – 查找和搜尋檔案
find 指令_find指令 查找和搜尋檔案find指令 – 查找和搜尋檔案
  1. 基礎範例

    查找指定時間内修改過的檔案。

[[email protected] ~]# find . -atime -2  #"."代表目前目錄,檢視2天内通路的檔案[[email protected] ~]# find /etc/ -mtime -5 查找修改時間在5天内的檔案
           

find查找時間說明圖

find 指令_find指令 查找和搜尋檔案find指令 – 查找和搜尋檔案

-4表示檔案更改時間距現在4天以内。

+4表示檔案更改時間距現在4天以前.

.4表示距現在第4天。

  利用“!”反向查找。

[[email protected] ~]# find . -type d   #查找目前目錄下的所有目錄[[email protected] ~]# find . ! -type d #查找不是目錄的檔案
           

用-name指定關鍵字查找

find /var/log/ -mtime +5 -name '*.log' #檢視5天前已log結尾的檔案
           

按照目錄或檔案的權限來查找檔案。

[[email protected] ~]# find /etc/ -perm xxx  #按照目錄或檔案的權限來查找
           

按大小查找檔案。

[[email protected] ~]# find . -size +10M  #查找大于10M的檔案
           

查找檔案時希望忽略某個目錄。

[[email protected] data]# find /data -path "/data/2" -prune -o -print   #-path指定路徑,配合-prune參數用于排除指定目錄 -o是或的意思/data/data/1/data/3
           

使用user和nouser選項。

[[email protected] data]# find . -user test  #查找使用者為test的檔案如果是數字屬主那就需要用-nouser參數drwxr-xr-x 2  555 root 6 5月  28 12:56 1[[email protected] data]# find . -nouser  #查找沒有對應任何使用者的檔案./1
           

ls-l指令放在find指令的-exec選項中執行。

[[email protected] ~]# find . -type f -exec ls -l {} \;-exec後面跟的是指令以;結束加上反斜杠進行轉義{}的作用是指代前面find查找到的内容{}前後都要有空格
           

-exec選項的安全模式-ok。

[[email protected] ~]# find /var/log/ -name "*.log" -mtime +5 -ok rm {} \;#檢視結尾*.log  -ok是在删除前提示是否删除.
           

2.技巧性範例