可以只根据文件名查找文件吗?

Sua*_*uan 27 filenames ack

使用ack(有时打包为ack-grep)我知道我可以通过执行以下操作找到包含特定字符串的路径:
ack -g somestring

但是,如果我只想要文件名中包含"somestring"的文件呢?

use*_*650 46

我同意find是要走的路,但你也可以用ack轻松完成:

ack -f | ack "string"
Run Code Online (Sandbox Code Playgroud)

这里,"ack -f"递归地列出它将搜索的所有文件; 管道到第二个ack命令来搜索它.ack -f确实具有跳过二进制文件和目录的优势,即使没有任何更多的参数; 通常,"查找"命令可以用更短的"确认"命令代替.


dme*_*sky 23

你可以使用find实用程序.像这样的东西:

find /path/to/look/in -name '*somestring*' -print
Run Code Online (Sandbox Code Playgroud)

在某些系统上,如果省略路径,则使用当前目录.在其他系统上,您无法省略它,只需使用.当前目录.

此外,阅读man find许多其他选项.


Jef*_*era 7

如果您希望用于ack查找somestring其基本名称中的所有文件,只需添加[^/]*$到正则表达式,例如,

ack -g somestring[^/]*$
Run Code Online (Sandbox Code Playgroud)

不幸的是,--color会显示匹配从somestring文件名结尾; 但是可以做你要求使用的东西ack.