gpt4 book ai didi

linux - 为什么 Unix 通配符 "*"不包括 ".*"?

转载 作者:太空狗 更新时间:2023-10-29 11:23:50 27 4
gpt4 key购买 nike

考虑一个只有一个文件 .foo 的目录。然后 rm -rf * 不会删除 .foo;只有 rm -rf .* 会。为什么会这样? (我想这与默认的 ... 有关,但设计原理是什么?我倾向于在它们应该是的时候留下点文件已删除。)

最佳答案

根据 Rob Pike 的说法,名称以点开头的文件应该“隐藏”的整个概念 was the result of a software bug .

特别是,他说:

First, a bad precedent was set. A lot of other lazy programmers introduced bugs by making the same simplification. Actual files beginning with periods are often skipped when they should be counted.

Second, and much worse, the idea of a "hidden" or "dot" file was created. [...]

I'm pretty sure the concept of a hidden file was an unintended consequence. It was certainly a mistake.

撇开历史意外不谈,从通配符扩展中排除隐藏文件是一个很好的保守设计决策。否则像 rm * 这样的命令可能会造成比用户预期的更大的损害。

关于linux - 为什么 Unix 通配符 "*"不包括 ".*"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17462634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com