实现文件查找的命令一般有俩种:locate:非实时,模糊匹配,查找是根据全系统文件数据库进行的;优势是速度快。find:与locate相比,实时,精确,遍历指定目录中的所有文件进行查找,因此速度慢。
find的查找格式为:指定查找路径,查找标准,查找到的处理运作。匹配标准:-name `filename`,对文件名做精确匹配。例如:查找etc目录下的以passwd开头的文件: find /etc -name ‘passwd’ -iname 'FILENAME':文件匹配时不区分大小写;-regex PATTERN:基于正则表达式进行文件匹配; -user USERNAME:根据属主查找; -user USERNAME:根据属主查找; -uid UID:根据UID查找; -gid GID:根据GID查找; -nouser:查找没有属主的文件; -nogroup:查找没有属组的文件。
根据文件类型来查找:find -type 比如:查找tmp下的目录:find /tmp -type d 按照文件大小查找;-size [+或-] 组合条件:-a -o -not 与的优先级高于或。组合使用时要加小括号。根据文件的时间戳来进行查找:-mtime:修改时间;-ctime:改变时间-atime:访问时间。根据文件权限来查找:-perm MODE:精确匹配 /:本身有或关系 -:本身有与关系。/MODE:任意一位匹配即满足条件; -MODE:文件权限能完全包含此MODE时才符合条件。例如:查找当前目录下文件权限为750的文件:find ./ -perm 750 运作:-print:显示 -ls:显示 -ok COMMAND {} \:每一次操作都需要用户确认。