ls --hide= 和 ls --ignore= 的语法

ls --hide= 和 ls --ignore= 的语法

ls --hidels --ignore提供了省略通过该部分之后设置的正则表达式定义的文件的可能性--ignore=。后者确保该选项不会通过 关闭-a, -A。命令maninfo页面提到了正则表达式。

问题ls --hide=:和中支持哪些通配符或正则表达式ls --ignore=

我发现似乎* $ ?支持,以及 POSIX 括号表达式。但这似乎并不总是能正常工作,对我来说更像是一场反复试验的游戏。我在这里错过了什么重要的事情吗?

答案1

来自手动的:

-I pattern,--ignore=pattern

在目录中,忽略名称与 shell 模式(非正则表达式)模式匹配的文件。与在 shell 中一样,.文件名中的首字母与模式开头的通配符不匹配。有时多次提供此选项很有用。例如,

     $ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'

第一个选项忽略以 开头的长度为 3 或更长的名称,第二个选项忽略以except.开头的所有双字符名称,第三个选项忽略以 开头的名称。...#

您只能使用 shell全局模式:*匹配任意数量的字符、?匹配任意一个字符、[…]匹配括号内的字符并\引用下一个字符。该字符$代表其自身(确保它位于单引号内或前面带有 a\以保护它免受 shell 扩展)。

答案2

它使用 POSIX.2 正则表达式模式格式。请参阅re_format(7)手册页了解具体细节。

相关内容