4ae*_*1e1 2 unix linux shell wildcard
考虑只有一个文件的目录.foo.然后rm -rf *不会删除.foo; 只会rm -rf .*.为什么会这样?(我想这已经是与默认的.和..,但有什么设计理念?我倾向于当他们都应该要删除的文件点留下.)
.foo
rm -rf *
rm -rf .*
.
..
NPE*_*NPE 12
根据Rob Pike的说法,一个名称以点开头的文件应该被"隐藏"的整个概念是软件错误的结果.
特别是,他说:
首先,设定了一个不好的先例.许多其他懒惰程序员通过进行相同的简化来引入错误.以句点开头的实际文件在计算时通常会被跳过. 其次,更糟糕的是,创建了"隐藏"或"点"文件的想法.[...] 我很确定隐藏文件的概念是一个意想不到的后果.这肯定是个错误.
首先,设定了一个不好的先例.许多其他懒惰程序员通过进行相同的简化来引入错误.以句点开头的实际文件在计算时通常会被跳过.
其次,更糟糕的是,创建了"隐藏"或"点"文件的想法.[...]
我很确定隐藏文件的概念是一个意想不到的后果.这肯定是个错误.
除了历史事故之外,从通配符扩展中排除隐藏文件是一个很好的保守设计决策.否则,类似命令可能rm *会造成比用户预期更多的伤害.
rm *
归档时间:
12 年,6 月 前
查看次数:
1115 次
最近记录: