JJ *_*eck 97 linux string find
我在Ubuntu上,我想查找当前目录中的所有文件以及名称中包含字符串"John"的子目录.我知道grep可以匹配文件中的内容,但我不知道如何将它与文件名一起使用.任何帮助,将不胜感激.
Ric*_*ams 179
使用find命令,
find . -type f -name "*John*"
Run Code Online (Sandbox Code Playgroud)
tin*_*ink 22
已经提供了正确的答案,但是为了让你学习如何帮助自己,我想我会以不同的方式投入一些有用的东西; 如果你能用一个词来概括你想要实现的目标,那么在Linux上有一个强大的帮助功能.
man -k <your search term>
Run Code Online (Sandbox Code Playgroud)
这样做的目的是列出在简短描述中包含搜索词的所有命令.通常很有可能你会找到你想要的东西.;)
这个输出有时可能有点压倒性,我建议将其缩小到可执行文件,而不是所有可用的man-pages,如下所示:
man -k find | egrep '\(1\)'
Run Code Online (Sandbox Code Playgroud)
或者,如果您还想查找需要更高权限级别的命令,请执行以下操作:
man -k find | egrep '\([18]\)'
Run Code Online (Sandbox Code Playgroud)
该find命令将花费很长时间,因为它扫描文件系统中的真实文件。
最快的方法是使用locate命令,它会立即给出结果:
locate "John"
Run Code Online (Sandbox Code Playgroud)
如果没有找到该命令,则需要先安装mlocate包并运行updatedb命令来准备第一次搜索数据库。