查找命令:local,find
local:非实时查找,通过系统数据库进行搜索,无法查找到在系统数据库更新后创建的文件,但是查找速度快,模糊查找(不仅会查找到文件名还会找到文件全路径)
find:在硬盘上进行实时搜索,速度较慢,但是可以找到当前所有的数据
系统数据库在 /var/lib/mlocate/mlocate.db
系统一般会定时更新数据库,通过updatedb可以手动更新数据库
locate:
-i:区分大小写
-r:支持正则表达式
-n#:只查找前#个
find [选项][路径][条件][处理动作](在写路径时目录后要加/)
条件:
-name#:查找名称为#的文件(支持正则表达式)
-inum#:查找inode为#的文件
-samefile#:查找与#节点号相同的文件
-links#:查找链接数为#的文件
-regex#:查找以#匹配的整个文件路径的字符串而不只是文件
-user#:查找属主为#的文件
-group#:查找属组为#的文件
-uid#:查找uid#的文件
-gid#:查找gid#的文件
-nouser#:查找没有属主的文件
-nogroup#:查找没有的文件
-type: f:普通文件 d:目录 l:链接文件 s:套接字文件 c:字符设备文件 b:块设备文件 p:管道文件
与:-a 或:-o 非:-not !
德摩根定律:
非(P且Q)=(非P)或(非Q)
非(P或Q)=(非P)且(非Q)
命令中包含*一般要加“”
-size(#、+#、-#):根据文件大小查找
#:(#-1,#]
-#:[0,#-1]
+#(#,正无穷)
-atime(#、+#、-#):根据文件访问查找(以天为单位)
#:[#,#+1)
-#:[0,#]
+#[#+1,正无穷)
-mtime(#、+#、-#):根据文件修改查找
-ctime(#、+#、-#):根据文件元数据修改时间查找
-amin,-mmin,-cmin:以分钟为单位
-perm(#、/#、-#):根据权限查找
#:精确匹配权限
/#:再给出的非空权限为上,至少有一位能匹配上,0表示不关注
-#:给出的非空权限位必须全部匹配上,0表示不关注
处理动作
-print:打印
-ls:显示文件详细信息(有些情况下加-ls会造成查找结果异常)
-delete:删除文件
-fls #:把找到文件信息保存到#
-ok 命令 {} \;:对找到的文件执行命令(执行前进行交互式询问)
例子:-ok cp{} {}.bak \;
{}代表找到的文件名称,{}与\之间要有空格,\与;之间不能有空格,命令不支持别名
-exec与ok用法相同只是执行命令前不询问
有些命令不能接受过多参数,此时命令执行可能会失败,采用下面方式可规避此问题 find | xargs COMMAND
原创文章,作者:zzzzz1357x1,如若转载,请注明出处:http://www.178linux.com/36234
评论列表(1条)
对find命令的常见用法总结的很好,可以有一些示例,让自己的文章看起来更丰满一些,find在面试题中经常会出现,所以希望下来自己能好好的联系,熟练掌握。