我喜欢只搜索目录,而选项
ag --list-file-types
对此没有帮助。坚持使用 ag
的原因是可以选择包含要忽略的模式的 --path-to-ignore
文件。
等效的命令是
fd --type d
。
使用 -G 参数,并指定目录名称。
例如,如果您想仅在下载目录中搜索单词“foobar”:
ag -G "Downloads" foobar
要在嵌套目录中搜索:
ag -G "Downloads/some_directory" foobar
要在多个目录中搜索:
ag -G "Downloads|Documents" foobar
您可以在链接命令中使用
ag
从工作目录递归地列出所有目录:
ag --null -g ./ | xargs -0 dirname | sort -u
--null
表示每个 ag
输出由 \000
分隔,这允许通过 xargs
-g
意味着我们只在 文件名 中搜索,而不是在文件本身中搜索./
在当前工作目录运行| xargs -0
- 将所有(相对)文件路径从 ag
传输到 xargs
,它使用 -0
接受我们从 --null
获得的
ag
dirname
仅返回每个文件的目录名称sort -u
我们对返回的目录进行排序并删除重复项。我们将为它包含的每个文件拥有相同的目录!然后您可以将该列表的输出传递给
grep
的一些更奇特的东西,例如 [fzf][1]
。