find 与 locate 无法查找新上传到服务器文件的位置

locate

locate可以快速进行查找linux服务器上的资源,并进行定位。一般情况下我是很倾向于使用这个命令的。

但是当服务器上的文件是刚上传的,或者刚有人cp执行了复制后,locate是无法查找到文件的位置的,因为索引上没有(索引没有更新,索引的更新是服务器上的定时任务进行更新的)

如果可以,通过update.db进行服务器索引手动更新可以解决,但是这个需要root权限,开发一般是没有服务器上的root权限的,所以这个方法有时候不那么奏效。


find

find的命令按理说是可以查找到新增的文件的。
但是经过测试,如果系统对指定目录进行了缓存,find在缓存更新前执行,则无法查找到刚上传的服务器上的文件。

所以使用find的时候要结合其他命令,手动的强制刷新一下缓存,让系统看到新增的文件。

find / -type f -name "test.xlsx" 2>/dev/null -exec echo {} \;

find查找后,将错误信息吐到黑洞,匹配到的结果通过echo输出到{}中进行打印。
-exec 选项本身并不会直接刷新缓存,当 find 命令结合-exec 时,会执行指定的命令来处理每个找到的文件,而不管系统是否对文件系统进行了缓存。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值