linux-文件查找

版权声明:来一来,看一看,有钱的捧个人场,没钱的你不得捧个人场 https://blog.csdn.net/wait_for_eva/article/details/84583220

locate

格式

命令 参数 说明
locate filename 本机查找文件

特点

  • 数据库存储

crontab任务扫描文件,更新到数据库,在数据库中进行查找。

  • 周期

具体周期和时间看crontab任务

  • 更新

updatedb手动更新。

  • 模糊匹配

模糊匹配查找结果,文件名包含或者路径包含也会被返回。

优劣

  • 优势

不扫描磁盘,直接查库,效率高,速度快,资源消耗小。

  • 缺点
  1. 依赖数据库更新,不更新时,新增文件找不到,删除文件还找到
  2. 模糊匹配,文件名或路径包含也会返回,冗余垃圾信息。

find

格式

命令 文件夹 选项 文件名
find directory option filename

特点

  • 实时扫描

执行命令当场扫描,结果实时,找到必然存在。

  • 精确匹配

精确条件匹配,过滤冗杂信息,命中率高。

优劣

  • 优势
  1. 查找条件丰富
  • -name filename:文件名精确查找
  • -iname filename:忽略大小写查找
  • -regex pattern:正则查找
  • -user username:属主查找
  • -group groupname:数组查找
  • -uid uiduid查找
  • -gid gidgid查找
  • -nouser:无主文件
  • -nogroup:无组文件
  • -type:文件类型查找
    • f
    • d
    • c
    • b
    • l
    • p
    • s
  • -size:文件大小查找
    • 范围:+,-,大于或小于,默认等于
    • 单位:k,M,G,可指定单位
  • 条件组合:支持多条件限制
    • -aand
    • -oor
    • -notnot
  • 时间戳限制:根据时间进行查找
    • 时间类型
      • mtime:modify,修改时间
      • ctime:change,改变时间
      • atime,access,访问时间
    • 常用时间
      • mminmtime以分钟为单位
      • cminctime以分钟为单位
      • aminamin以分钟为单位
    • 时间限制:+,-,默认等于,以指定时间为界,+表示范围外,-为范围内
  • -perm:权限查找,permission
    • mode755,权限精确匹配,必须相等
    • -mode-755,权限包含匹配,即最低权限
    • /mode/755,任意权限匹配,权限或|,满足其一权限即可
    • +mode+755,同/mode
  • 动作
    • -print:显示结果,默认
    • -ls:按照ls -lhi格式显示
    • -ok command {}\;:执行command命令,{}为结果引用,\;分号结束,需转义
    • -exec command {}\;:同-ok

命令查找

命令 功能 说明
whereis 查找命令位置 查找命令,满足条件即返回
which 查找命令位置 探知运行命令

whereis查找的是命令文件,自动过滤了其他类型,但是能够发现多个位置的命令地址。

which更像是命令探知,在所有的命令当中探知执行的是哪一个命令

命令文件加上aliaswhich会直接显示运行的是哪一个命令。

如果想知道命令文件都在哪,用whereis

如果想知道运行的是啥命令,用which,即使是alias也能够发现。

脚本

  • 五分钟内被修改的文件
find . -mmin -5
  • 用户文件
find . -user godme
  • 撤销其他用户执行权限
find . -perm -001 -exec chmod o-x {} \;

选项和参数之间注意分隔,一个空格就好了。

{}左右留空。

\;不要和语句连接上。

  • 查看godme命令
alias godme="/bin/ls --color -lhi"
which godme     #能够定位到执行的具体信息
whereis godme   #找不到godme命令

猜你喜欢

转载自blog.csdn.net/wait_for_eva/article/details/84583220