当执行定位来查找特定文件时,它会显示很多内容,但是有没有办法反转显示的内容?前任。找到其中包含单词 drupal 的任何内容,但不显示主目录中的任何内容。
答案1
是的,我一直按照@Raza 的建议去做。例如,假设我想查找所有与字体相关的文件不是坐在~/installations/
等待安装。
locate font | grep -v installations
$HOME/.cache
糟糕,我忘记了和中的很多东西都会匹配$HOME/.config
。
locate font | grep -v $HOME
现在要摆脱手册页、语言环境、图标……
locate font | grep -v -e $HOME -e icons -e /man/ -e /locale/
可能两个都不感兴趣/var/cache
...
locate font | grep -v -e $HOME -e icons -e /man/ -e /locale/ -e /var/cache
ETC。
我经常遇到的另一个用例是搜索系统上程序的所有版本。 locate emacs
将输出数千个结果,因此我仅过滤基本名称中包含“emacs”的结果:
locate emacs | egrep 'emacs[^/]+$'
天哪,这仍然显示图标和手册页等等。那么,如果基名在 emacs 后面没有句点呢?
locate emacs | egrep 'emacs[^/.]+$'
这好多了。
请记住,与 不同的是find
,locate
是数据库查找;它不会消耗任何文件系统资源来搜索结果,因此您不会通过生成大量结果然后使用grep
.