首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux系列开坑记(四)-文件查找工具

阅读本文4分钟

日常开发工作中,我们经常会碰到有些配置文件或者日志文件找不到的情况,只记得基本的名字,记不得完整路径。为了更好查找到文件,今天我们就来聊下文件查找工具。

关于文件查找工具,主要两个:

locate 通过名字来进行文件查找,较快

find 在目录搜索文件,较慢

locate

第一个我们要讲的就是locate,locate文件查找比较简单,并且速度很快。

主要是因为它是直接搜索locatedb文件数据库,这个数据库主要是系统文件数据,它是由cron程序进行定期把文件更新的,通常是一天一次。在Linux有些发行版,如果locate不能工作,就是因为刚刚初始化系统导致locatedb没有数据。

如果你要进行全盘搜索locate是比较方便快捷的快的,也是最简洁的。

比如我要找我的 db.sqllite3 这个临时db文件。

locate db.sqlite3

find

第二个就是我们的find,临时用一下locate还行,但是如果我们有稍微多一些需求就不太方便了。所以更强大的查找工具就是find了。

find工具能够根据文件的各种属性来进行查找,非常有利于我们进行高级查询,功能强大,往往参数指令会多一些。

为了简单,这里面我举几个简单而常用的例子。

find . -name views.py # 在当前目录查找文件名为为views.py

find ~ -size +5M -name ".jpg" # 在主目录查找大于10M的文件

find . -type d | grep yourdir # 查找目录下的目录文件并且筛选yourdir

find . -name ".BAK" -delete # 查找以BAK为结尾文件删除 删除前进行测试用 -delete替换为 -print 或者可以在git版本控制测试。

find . -name "*.py" -exec ls -al "{}" \; # 当前目录查找所有py文件并且打印 -exec唤醒其他命令,-exec 后面跟命令 {}表示当前路径名符号表示,分号是强制要求界定命令结束。

我通常比较喜欢用简单的方式,而不是更为高级的方式,通过cheat工具给一个其他案例,强烈推荐大家去了解一下cheat命令行帮助工具,对比man,info帮助工具,cheat非常方便日常学习使用。

上面其他案例中exec我已经讲了,awk文本处理工具后面我会单独讲也不啰嗦了。

这里简单提一下xargs,它从标准输入接受输入,并把输入转换为特定命令的参数列表。可以说xargs是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。

通过find命令输入被管道到xargs命令,反过来xargs为ls命令构建参数列表,执行ls命令。

关于文件查找locate,find 你学会了么?

Linux日常命令使用,同Docker容器化一样我会以一个系列进行分享,今天是第四篇,后面我将持续分享更多内容,从Linux日常命令使用到shell脚本编程,欢迎持续进行关注。涛哥将会用最简单使用的方式分享开发技术的各个方面。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181210G1L1O100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券