哪些命令可以使用通配符?

哪些命令可以使用通配符?

读过apt-get remove 删除的通配符比预期的多。为什么?*(在我自己犯了类似的错误之后),我对使用那些我不完全熟悉的命令更加谨慎了。

清楚地

sudo apt-get remove k3b*

没有按照用户想要的方式运行,我发现自己真的想知道:当使用通配符时,还有哪些命令不会按照某些用户的意图运行?

答案1

来自 bash 手册:

路径名扩展:在单词拆分之后,除非设置了 -f 选项,否则 bash 会扫描每个单词以查找字符 *、? 和 [。如果出现这些字符之一,则该单词将被视为模式,并替换为与该模式匹配的按字母顺序排序的文件名列表。如果没有找到匹配的文件名,并且未启用 shell 选项 nullglob,则该单词保持不变。

因此,bash 通常会尝试进行路径名扩展(在您使用的 apt-get 示例中,使用当前目录中的文件),如果失败,则该词将传递给应用程序。

如果您不打算使用 shell globs 进行路径名扩展,那么应用程序将随意解释您的通配符,并且您可以预期的行为将取决于应用程序。

如果您不确定,我强烈建议您在传递通配符之前阅读命令手册。

相关内容