ack|grep|whatnot 特别忽略文件夹模式 node_modules/dir/node_modules
ack|grep|whatnot special ignore folders pattern node_modules/dir/node_modules
我最近发现 ack 和 ack -ir --ignore-dir={node_modules,dist,.git} <search-term>
对大多数事情都很有效,但是这个
---node_modules/
---------------project1/
-----------------------node_modules/
---------------project2/
-----------------------node_modules/
我想搜索 "root" node_modules 下的所有文件并排除所有内部文件。
注意:如果我 运行 find . -type f | ack -v 'node_modules|.git|dist'
在根 node_modules 文件夹下,我会得到一个正确的文件列表。发生这种情况是因为 find .
给出了相对路径。有什么办法可以将此列表提供给 ack 吗?
ack -i <search-term> ./node_modules/*
应该做你想做的。
如果您也想包含 隐藏 文件和文件夹,请先设置 shopt -s dotglob
(假设 Bash)。
背景资料:
ack
有许多忽略文件的规则,您通常不希望搜索这些文件内置。
从至少版本 2.14 开始,此 包含 个名为 .git
和 node_modules
的目录,位于层次结构的任何级别(ack
默认情况下递归搜索,尽管您可以添加 -r
/ -R
/ --recursive
以明确显示)。
要查看默认忽略的目录/文件的完整列表,运行 ack --dump
.
通过使用 globbing(路径名扩展)让 shell 将模式 ./node_modules/*
扩展为 list of actual items inside ./node_modules
, node_modules
的忽略规则是 bypassed 对于那些明确传递的项目。
node_modules
在 ack
中的默认 --ignore-dir
列表中 javascript。
您可以使用 un-ignore node_modules 的 --noignore-dir
选项禁用此功能。
直接在命令行:
% ack --noignore-dir=node_modules -i <search-term>
在您的 .ackrc
文件中:
# in .ackrc
--noignore-dir=node_modules
影响所有搜索:
% ack -i <search-term>
我最近发现 ack 和 ack -ir --ignore-dir={node_modules,dist,.git} <search-term>
对大多数事情都很有效,但是这个
---node_modules/
---------------project1/
-----------------------node_modules/
---------------project2/
-----------------------node_modules/
我想搜索 "root" node_modules 下的所有文件并排除所有内部文件。
注意:如果我 运行 find . -type f | ack -v 'node_modules|.git|dist'
在根 node_modules 文件夹下,我会得到一个正确的文件列表。发生这种情况是因为 find .
给出了相对路径。有什么办法可以将此列表提供给 ack 吗?
ack -i <search-term> ./node_modules/*
应该做你想做的。
如果您也想包含 隐藏 文件和文件夹,请先设置 shopt -s dotglob
(假设 Bash)。
背景资料:
ack
有许多忽略文件的规则,您通常不希望搜索这些文件内置。
从至少版本 2.14 开始,此 包含 个名为 .git
和 node_modules
的目录,位于层次结构的任何级别(ack
默认情况下递归搜索,尽管您可以添加 -r
/ -R
/ --recursive
以明确显示)。
要查看默认忽略的目录/文件的完整列表,运行 ack --dump
.
通过使用 globbing(路径名扩展)让 shell 将模式 ./node_modules/*
扩展为 list of actual items inside ./node_modules
, node_modules
的忽略规则是 bypassed 对于那些明确传递的项目。
node_modules
在 ack
中的默认 --ignore-dir
列表中 javascript。
您可以使用 un-ignore node_modules 的 --noignore-dir
选项禁用此功能。
直接在命令行:
% ack --noignore-dir=node_modules -i <search-term>
在您的
.ackrc
文件中:# in .ackrc --noignore-dir=node_modules
影响所有搜索:
% ack -i <search-term>