日常开发工作中,我们经常会碰到有些配置文件或者日志文件找不到的情况,只记得基本的名字,记不得完整路径。为了更好查找到文件,今天我们就来聊下文件查找工具。
关于文件查找工具,主要两个:
-
locate 通过名字来进行文件查找,较快
-
find 在目录搜索文件,较慢
locate
第一个我们要讲的就是locate,locate文件查找比较简单,并且速度很快。
主要是因为它是直接搜索locatedb文件数据库,这个数据库主要是系统文件数据,它是由cron程序进行定期把文件更新的,通常是一天一次。在Linux有些发行版,如果locate不能工作,就是因为刚刚初始化系统导致locatedb没有数据。
如果你要进行全盘搜索locate是比较方便快捷的快的,也是最简洁的。
比如我要找我的 db.sqllite3 这个临时db文件。
locate db.sqlite3
[图片上传失败...(image-8bba54-1547888201688)]
imagefind
第二个就是我们的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非常方便日常学习使用。
image上面其他案例中exec我已经讲了,awk文本处理工具后面我会单独讲也不啰嗦了。
这里简单提一下xargs,它从标准输入接受输入,并把输入转换为特定命令的参数列表。可以说xargs是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。
image[图片上传失败...(image-71f55b-1547888201688)]
通过find命令输入被管道到xargs命令,反过来xargs为ls命令构建参数列表,执行ls命令。
关于文件查找locate,find 你学会了么?
Linux日常命令使用,同Docker容器化一样我会以一个系列进行分享,今天是第四篇,后面我将持续分享更多内容,从Linux日常命令使用到shell脚本编程,欢迎持续进行关注。涛哥将会用最简单使用的方式分享开发技术的各个方面。
image相关文章:
image
网友评论