我不明白 ls [aDt]*t?t 的意思

I don't understand the meaning of ls [aDt]*t?t

对你们来说可能是一个快速简单的方法,但实际上我无法在任何地方找到答案。

这是什么意思?请帮我分解一下好吗?

答案很简单:

  • [aDt] : 字符 aDt.
  • * : 零个或多个(任意)字符。
  • . : 点。
  • t : t 字符。
  • ? : 任意(单个)字符。
  • t : t 字符。

"[aDt]*.t?t" 是"shell展开"的表达式(有几种,这个是"模式匹配")。

此扩展使用通配符类型项目不仅可以匹配单个名称,还可以匹配多个名称。

对于 ls 命令(你的问题,但同样适用于任何命令),它会列出所有具有匹配名称的文件,但不会列出其他文件。

[aDt]  matches any of the character "a", "D", "t"
*      matches any number (even zero) of any character
?      matches any single character

这个表达式可以匹配,例如

  D-data.txt
  a-what.tNt
  t.tst

但不是

  mega.txt      (first letter is not a, D or t)
  ciao.TXT      (the uppercase T of TXT do not match)
  ciaotxt       (does not contain a dot)

这只是部分回复,事情要复杂得多。