find查找命令的各种使用方法
find是文件查找工具,实时查找,速度慢,精确匹配
find命令基本使用格式
find [options] [查找路径] [查找条件] [处理动作]
查找路径:默认为当前目录
查找条件:默认为查找指定路径下的所有文件
处理动作:默认为显示
1、查找条件
-name "文件名称":支持使用globbing
*、?、[]、[^]
-iname "文件名称":查找时不区分字符大小写
-user UserName:根据属主查找
-group GroupName:根据属组查找
-uid UID:根据用户id查找
-gid GID:根据组id查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
2、组合条件
-a:与,同时满足
-o:或
-not,!:非,取反
-type:根据文件类型查找
f:普通文件
d:目录
b:块设备
c:字符设备
l:符号链接文件
p:命令管道
s:套接字
-size:根据文件大小查找
-size [+|-] #Unit (#-1)<x<=#
例如:-szie +2MB
常用单位:k,M,G
3、根据时间戳查找
以天为单位(time):
-atime [+|-]#:
+表示(#+1)天之外被访问过
-表示#天之内被访问过
无符号:表示(#+1)>x>=#天的时间段被访问过
-mtime [+|-]#
-ctime [+|-]#
以分钟为单位:
-amin [+|-]#
-mmin [+|-]#
-cmin [+|-]#
4、根据权限查找
-perm [+|-]MODE
MODE:精确匹配
+MODE:任何一类用户的任何一位权限匹配,常用户查找某类特定 权限是否存在
-MODE:没类用户的任何一位都匹配
文件权限是644
-perm 600:否
-perm +222:可以
-perm +002:否
-perm -444:可以
5、处理动作
-print:打印在标准输出上
-ls:以长格式输出个文件信息
-exec COMMAND {} \; :对查找到的文件执行指定的命令
-ok COMMAND {} \; : 交互式的exec
find把查找到的所有文件一次性地传递给-exec所指定的命令
# find -type f -exec mv {} {}.bak \;
find | xargs COMMAND
# find -type f | xargs ls -l
6、工作中的实际应用
名字为:reso\0000000055c80c920156220f187420d0\402881e0391f602e0139c35b6f376a07\S12的文件删除方法
# find . -name '*\\*' -exec rm {} \;
名字为:reso\0000000057078f240157192492910840\402881e031d6c5eb0131dc075cff03a3的目录的删除犯法
# find . -type d -a -name '*\\*' -exec rm -rf {} \;
之查找当前目录,不进行递归查找的方法:
# find . ! -name "." -prune -name "*.html" 或者
# find . -name "*html" -maxdepth 1 (此方法会有警告)