Grey
全部学习内容汇总: https://github.com/GreyZhang/toolbox
1852_bash中的find应用扩展
find这个工具我用了好多年了,但是是不是真的会用呢?其实不然,否则也不会出现这种总结式的笔记。其实,注意部分小细节之后,find可以很好的实现我们对于文件存放位置的搜索需要。
主题由来介绍
一直以来,我用find直接搜索我磁盘上的文件去看是否有重复的文件可以清除。常用的一种方式为,首先切换到磁盘根目录,之后执行如下的命令:
find -iname *keyword*
我通过上面的搜索命令来匹配带有关键词的文件,-iname用以说明执行的方式是按照忽略大小写形式搜索文件名称。一直以来,在我的树莓派以及NAS上做这样的搜索到时没遇到啥问题。但是,偶然一次我在git bash中搜索 emacs lisp所有文件的时候失败了。我输入了如下的命令:
find -iname *.el
这是我搜索出来的结果,我知道我的这个目录中这样的文件很多,因此接着就发现了不正确。其实,我这一次的搜索命令格式与之前的确也有不同,这一次的表达式中少了一个星号。不过,还是看得出来我对这个命令掌握的不是很熟悉。
为了排除这个是工具的问题,同样的测试我在不同的平台上都做了尝试。同时,我还查看了软件的版本,首先确认全都是GNU的工具,最多版本略有差异。结果,在不同的平台上测试下来也是如此。为此,我觉得我应该探索并总结下find的用法了。
资料寻找与分析
这样的资料还是很多的,一如既往,我还是以英文搜索为主: Find Command in Linux (Find Files and Directories) | Linuxize
这一次找到的资料网页,广告有一些多,占据了几乎将近一半的版面。不过还好,知识内容还是值得的。
其他
除了上面的信息之外,find还支持按照权限、所有者、用户组以及时间等信息进行搜索。目前看来,我现在的需要可能是比较纯粹的文件内容管理。因此上面的内容暂且可以不去尝试了。
小结
简单了解了一下,算是又增加了一些见识。不过,从了解的过程中看得出来,现在了解的功能还是比较皮毛的内容。比如说,如何更好地使用正则表达式来进行搜索等。这些,留待以后有需要的时候再去探索。