使用ack(有时打包为ACK-的grep)我知道,我能找到路径,通过这样含有的特定字符串:
ack -g somestring
只能根据文件名查找文件吗?
但如果我只想要其中有“somestring”中的文件什么的文件名?
使用ack(有时打包为ACK-的grep)我知道,我能找到路径,通过这样含有的特定字符串:
ack -g somestring
只能根据文件名查找文件吗?
但如果我只想要其中有“somestring”中的文件什么的文件名?
您可以使用find
实用程序。事情是这样的:
find /path/to/look/in -name '*somestring*' -print
在某些系统上,如果省略路径,则使用当前目录。在其他系统上,您不能忽略它,只需使用.
代替当前目录。
另外,请阅读man find
其他许多选项。
这适用于我,ack -all“somestring”,其中asck - all“somestring”将搜索包含该字符串的所有文件。 ack“somestring”只会搜索带有该字符串的文件。如果您想添加一些文件类型来永久搜索ruby文件,或者您可以在主目录中创建.ackrc文件,请添加下面的行--type-add = ruby = .haml,.rake,.rsel。乔希
这似乎是为了搜索文件内容。这不是问题所要求的。 – isherwood
我还不能评论,否则我会将此添加到@ dmedvinsky上面的答案。您可能希望他与@惠利的answer to a different question态度结合起来,以过滤掉.svn
文件:如果你想使用ack
地发现,在他们的基本名称somestring
的所有文件,只需添加[^/]*$
的正则表达式
find /path/to/look/in -not -iwholename '*.svn*' -name '*somestring*' -print
,例如,
ack -g somestring[^/]*$
不幸的是,--color
将显示在文件名末尾的比赛从somestring
;但有可能按照ack
的要求进行。
这就是答案。除非您使用ack的文件类型检测功能,否则'find'就是要走的路。 –