如何对文件扩展名的“.bashrc”进行模式匹配

如何对文件扩展名的“.bashrc”进行模式匹配

我正在修改我的.bashrc: 我想让.zip,.tar.tar.gz文件(也许以后会更多)以红色显示。问题是,我想将所有这些文件匹配一次。所以在.bashrc我的文件中:

LS_COLORS='*.hs=35:*.py=93:*.[zip|tar.*]=31'
export LS_COLORS

如果可以的话,我想避免

LS_COLORS='*.hs=35:*.py=93:*.zip=31:*.tar=31:*.tar.gz=31'
export LS_COLORS

但是,我的方法不起作用。我应该修改什么?

答案1

我不确定,但我怀疑这是不可能的,因为这完全取决于它ls本身处理您存储在 中的任何值的方式LS_COLORS。因此,除非他们选择实现您所描述的内容,否则这是不可能的,您需要硬着头皮将其全部写下来。至少你可以用一行而不是两行来完成:

export LS_COLORS='*.hs=35:*.py=93:*.zip=31:*.tar=31:*.tar.gz=31'

您还可以使用如下技巧来避免将其全部输入:

$ printf '*.%s=31:' {zip,tar,tar.gz,tgz,Z,xz,7z}
*.zip=31:*.tar=31:*.tar.gz=31:*.tgz=31:*.Z=31:*.xz=31:*.7z=31:

然后您只需复制/粘贴一次即可。

相关内容