find用法
find [path...] [expression]
default path is the current directory; default expression is -print
--如果没有带路径,[path...] 为空,则默认是当前路径,如果 [expression] 也是空的,则默认是-print
即只执行find 为 find ./ -print
一般常用的查找是:
类型匹配查找 -type ,f 为普通文件,d 为目录,l 为链接
find ./ -type d
名称匹配查找 -name ,匹配内容需要加引号
find ./ -type f -name "*.c"
时间匹配查找-mtime(modify time ,更新时间,+N ,N天以前修改过的,-N ,N天以内修改过的)
find ./ -type f -mtime +7 -name "*log"
新旧匹配 -newer filename ,查找比finename 这个文件更新的文件
find -type f -name "*log" -newer 201809150510.log
可以利用这个命令以更精细的时间戳进行查找
touch -t 201810100400.00 timetamp.txt
find -type f -name "*log" -newer timetamp.txt
取反时,在选项前加! ,比如 ! -name "*log" 为查找不以log 结尾的文件
对查找结果加以处理:-exec cmd {} \ ;
{} \; {}和\ 中间有空格,\ 后需要加分号,不加分号的话,\在命令行中表示命令未完进行换行。
将7天以前的log删除:
find ./ -type f -mtime +7 -name "*log" -exec rm {} \;
不递归查找:
find 默认是递归查找,如果只需要查找最外一层目录,将查找深度设置为1
-maxdepth LEVELS
-maxdepth 1
附find 的详细用法:
find --help
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:operators (decreasing precedence; -and is implicit where no others are given):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2positional options (always true): -daystart -follow -regextype
normal options (always true, specified before other expressions):
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
--version -xdev -ignore_readdir_race -noignore_readdir_racetests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
-ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
-links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
-nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN
-readable -writable -executable
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
-used N -user NAME -xtype [bcdpfls]actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
-fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
-exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
-execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>.
No Leanote account? Sign up now.