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

image

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

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

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

  2. find 在目录搜索文件,较慢

locate

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

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

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

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

locate db.sqlite3

[图片上传失败…(image-8bba54-1547888201688)]

image

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非常方便日常学习使用。

image

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

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

image

[图片上传失败…(image-71f55b-1547888201688)]

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

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

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

image

相关文章:

Linux系列开坑记(三)-流处理器sed

Linux系列开坑记(二)-神的编辑器Vim

Linux系列开坑记(一)-常用的3个命令

Python web开发从入门到放弃

Docker容器化部署实践Docker Compose

【私货】MongoDB 副本集的运维部署

sitin wechat
扫一扫上面的二维码,订阅我的博客!