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指令的參數選項及說明
-
基礎範例
查找指定時間内修改過的檔案。
[[email protected] ~]# find . -atime -2 #"."代表目前目錄,檢視2天内通路的檔案[[email protected] ~]# find /etc/ -mtime -5 查找修改時間在5天内的檔案
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.技巧性範例