find部分經常使用命令
linux
-print: find命令將匹配的文件輸出到標準輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } \;,注意{ }和\;之間的空格。shell
-mtime -n +n #按文件更改時間來查找文件,-n指n天之內,+n指n天之前bash
-ctime -n +n #按文件建立時間來查找文件,-n指n天之內,+n指n天之前ide
-atime -n +n #按文件訪問時間來查it
find / -amin -10 # 查找在系統中最後10分鐘訪問的文件
find / -empty # 查找在系統中爲空的文件或者文件夾class
-nogroup #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
搜索
-nouser #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer f1 !f2 #查更改時間比f1新但比f2舊的文件
-type b/d/c/p/l/f #查是塊設備、目錄、字符設備、管道、符號連接、普通文件
-size n[c] #查長度爲n塊[或n字節]的文件
-prune #忽略某個目錄command
示例:im
find . -name XXX -exec mv {} /tmp \; 查找xxx並轉移到/tmp
di
find /XXX -size +512k 查大於512k的文件
find /XXX -size -512k 查小於512k的文件
在linux find 進行查找的時候,有時候須要忽略某些目錄不查找,可使用 -prun參數來進行過濾,但必需要注意要忽略的路徑參數必須緊跟着搜索的路徑以後,不然該參數沒法起做用。
注意path若是是相對路徑須要以 「./」 開頭,而且匹配模式後不能夠有 "/"
"-o" 表示邏輯或
整條語句理解爲當prune執行爲true時,那麼就再也不執行那麼選項
一、排除單個目錄
find . -path "./XXX" -prune -o -type f -name *.py
二、排除多個目錄
find . -path "./other_back" -prune -o -path "./idc/bak/" -prune -o -path "./idc/tmp" -prune -o -ctime -3