当我们执行 rm -rf * 时,为什么我们不删除 .和 ..?

当我们执行 rm -rf * 时,为什么我们不删除 .和 ..?

我只是好奇。那里有救护员吗? 。并且..是我们要删除的目录的“子目录”,对吗?

我知道它不是一个子目录,但Linux将其视为具有目录属性的文件。

答案1

这不是 的一部分rm,而是您 shell 的一部分。是 shell 扩展并以参数形式*传递给的 glob (永远不会看到文字,除非 glob 不匹配任何内容,在这种情况下将传递文字)。标准glob 不会扩展为包含以点开头的文件名,其中包括和。例如:rmrm***...

$ tee foo bar baz .foo .bar .baz < /dev/null
$ echo *
bar baz foo
$ echo .*
. .. .bar .baz .foo

相关内容