ls --hide
并ls --ignore
提供了省略通过该部分之后设置的正则表达式定义的文件的可能性--ignore=
。后者确保该选项不会通过 关闭-a, -A
。命令man
和info
页面提到了正则表达式。
问题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)
手册页了解具体细节。