标签:相同 print 建议 相关 用户 size 额外 链接 指定
文件查找的工具查询依赖于事先构建的索引数据库: /varlib/mlocatr/mlocate.db
索引数据库是需要手动创建的,用 updatedb 命令实现创建更新,但较耗费系统资源,建议系统空闲时进行
locate的工作特点:
相关选项
locate -i 不区分大小写
-n 指定显示前几个
-r 使用正则表达式
示例: locate conf 搜索名称或路径中带有conf的文件
locate -r ‘\.conf$’ 搜索以.conf结尾的文件
通过扫描指定路径对文件进行查找
工作特点:
可能只搜索用户具备读取和执行权限的目录
语法:find /路径 -选项 -处理动作
路径默认为当前所在路径
查找相关选项:
按照条件查找
find /root -user li 查找属主为li的文件
-group li 查找属组为li的文件
-uid 11 查找属主ID为11的文件
-gid 11 查找属组ID为11的文件
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
按文件类型查找
find /root -type f 查找文件类型为f,即普通文件的文件
同上b:块设备文件
c:字符设备文件
d:目录文件
l:符号链接文件
s:套接字文件
p:管道文件
-empty 空文件或目录
示例: find /root -type d -empty 查找root下空的目录文件
按文件大小搜索:
支持单位: k,m,g
find /root -size n 搜索大小为n的文件(实际搜索大小为n-1至n大小的文件)
-n 搜索0至n-1大小的文件
+n 搜索大于n的文件
示例:find /root -size 100m 搜索root下99m到100m的文件
按时间戳搜索:
find /root atime n 搜索n+1至n天间被读取过的文件 以天文单位
-n
+n
ctime n 搜索n天至n-1天元数据发生过更改的文件
-n
+n
mtine n 搜索n天至n-1天内容发生过更改的文件
-n
+n
同上 amin n 以分钟为单位
cmin n
mmin n
按权限搜索:
find /root -perm 761 精确匹配 属主拥有7或属组拥有6或其他拥有1即匹配
-perm /761 模糊匹配 属主拥有7中任何一项或属组拥有6中任何一项或其他拥有1的权限及匹配
-perm -761 超·精确匹配 必须属主拥有7权限,同时属组拥有6权限,同时其他拥有1权限才匹配
其他搜索选项;
-maxdepth n 指定搜索最大深度为n
-mindepth n 指定搜索最小深度为n
-depth 先处理目录内文件,在处理目录
-name 按文件名称搜索 支持通配符
-inum 按inode编号搜索
-samefile data 搜索与data相同inode号的文件
-links n 搜索链接数为n的文件
可跟多个搜索条件:用-a或-o或-not组合起来
-a 与
-o 或
-not 非 或选项前加!
示例 :find /root -name file -o -user root
find /root -name file -a -user root
find /root -name file -not -user root
处理相关动作:
find /root -name data -ls 类似ls -l命令,显示额外信息
-delte 删除
-fls /xx/ 将搜索到的文件长格式信息保存在xx文件中
-ok 命令 {}/; 也可以接-ok,后面直接跟常用命令,结尾格式要求必须为{}/; {}引用前面搜索到文件的绝对路径 每个文件执行前都会要求用户交互式确认
-exec 命令 {}/; 同-ok上 非交互式
find处理动作是将前面搜索到的所有文件一次性传输给后面处理命令的,有些命令可能无法处理过多参数,需要用到xargs传输
xargs用法: 参数 |xargs 处理动作
示例
find -type f -name “*.txt” -print0 | xargs -0 rm
xargs传输默认分隔符为空格或回车,文件名可能有空格作为命名引发冲突,此时用到 -print0 | xargs -0 指定分隔符为NUL,此处NUL为空,是十进制的0对应的ascii码中NUL
标签:相同 print 建议 相关 用户 size 额外 链接 指定
原文地址:https://blog.51cto.com/14322599/2409527