在shell命令中。?? *是什么意思?

萨伯·沃尔夫

下面的命令将tar所有的“点”文件和文件夹:

tar -zcvf dotfiles.tar.gz .??*

我熟悉正则表达式,但是我不懂如何解释.??*我执行ls .??*tree .??*查看了列出的文件。为什么此正则表达式包含.以例如开头的文件夹中的所有文件

jw013

不是正则表达式。通常,shell会尝试解释您在命令行中键入的任何内容,而这些内容不会被引用为glob。Shell根本不需要支持正则表达式(尽管实际上许多更现代的=~表达式都支持,例如bash [[构造中regex match运算符)。

.??*是一个问题。它与任何以文字点开头的文件名相匹配.,后跟任意两个(不一定相同)字符??,后跟等价的正则表达式[^/]*,即0或多个not的字符/

有关shell路径名扩展的完整详细信息(“ globbing”的全名),请参见POSIX规范

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章