在终端的 grep 中保持 npm 链接文件夹的颜色
Keep npm linked folder color in grep on terminal
我在 node_modules
中有一个文件夹 link 到另一个项目(使用 npm link my-plugin
)。我们称它为 my-plugin
.
当我 运行 ls node_modules
时,我得到一个包含所有文件夹的列表,当然其中包含 my-plugin
。 my-plugin
文件夹有不同的颜色(请注意它是 linked)。
现在,我在 node_modules
中有很多文件夹,我只想获取特定文件夹,所以我正在使用 grep
。像这样:
ls node_modules | grep my-plugin
问题是 grep
绘制了表达式,所以我缺少 my-plugin
的 linked 颜色。
问题是有时我 运行 我的应用程序使用 link,有时使用原始插件,所以我需要知道它现在是否 linked。
我希望一切都清楚。如果没有,请告诉我。
ls
输出的颜色由 LS_COLORS
环境变量决定,通常通过评估 dircolors -b
的输出在 .bashrc
中设置,或者使用自定义文件,如 dircolors -b "$HOME/.dircolors"
。我的包含,例如,
# Symbolic link
LINK 35
将链接呈现为紫色。
另一方面,Grep 根据 GREP_COLORS
环境变量对其输出进行着色。它是一串冒号分隔的功能;我的 grep 的默认值是
ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
重要的部分是ms=01;31
:它设置
SGR substring for matching non-empty text in a selected line.
其中 "SGR" 是 "Select Graphic Rendition"; 01;31
将 grep 匹配的模式设置为默认背景上的粗体红色。
因此,无论 LS_COLORS
将您的链接目录设置为什么,grep 将始终使用自己的颜色进行匹配,因为它无法知道它正在查看的文本的含义。
解决方法是使用 find
:
过滤类型
find node-modules -type l -name 'my-plugin'
仅当链接是 return 时才会匹配。
我在 node_modules
中有一个文件夹 link 到另一个项目(使用 npm link my-plugin
)。我们称它为 my-plugin
.
当我 运行 ls node_modules
时,我得到一个包含所有文件夹的列表,当然其中包含 my-plugin
。 my-plugin
文件夹有不同的颜色(请注意它是 linked)。
现在,我在 node_modules
中有很多文件夹,我只想获取特定文件夹,所以我正在使用 grep
。像这样:
ls node_modules | grep my-plugin
问题是 grep
绘制了表达式,所以我缺少 my-plugin
的 linked 颜色。
问题是有时我 运行 我的应用程序使用 link,有时使用原始插件,所以我需要知道它现在是否 linked。
我希望一切都清楚。如果没有,请告诉我。
ls
输出的颜色由 LS_COLORS
环境变量决定,通常通过评估 dircolors -b
的输出在 .bashrc
中设置,或者使用自定义文件,如 dircolors -b "$HOME/.dircolors"
。我的包含,例如,
# Symbolic link
LINK 35
将链接呈现为紫色。
另一方面,Grep 根据 GREP_COLORS
环境变量对其输出进行着色。它是一串冒号分隔的功能;我的 grep 的默认值是
ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
重要的部分是ms=01;31
:它设置
SGR substring for matching non-empty text in a selected line.
其中 "SGR" 是 "Select Graphic Rendition"; 01;31
将 grep 匹配的模式设置为默认背景上的粗体红色。
因此,无论 LS_COLORS
将您的链接目录设置为什么,grep 将始终使用自己的颜色进行匹配,因为它无法知道它正在查看的文本的含义。
解决方法是使用 find
:
find node-modules -type l -name 'my-plugin'
仅当链接是 return 时才会匹配。