为什么我不能`rm -r .`?

为什么我不能`rm -r .`?

我已经问过自己几次的一个问题是为什么我无法使用删除当前工作目录rm -r .

shell 不存在将不存在的目录作为工作目录的问题,所以我只是为rm -r "../$(basename "$(pwd)")".

为什么这两个 s 有区别,而和rm的输出没有不同,并且 的 cwd也相同?realpath .realpath "../$(basename "$(pwd)")"rm

答案1

正如中所解释的'rm .*' 是否删除过父目录?POSIX 规范的以下部分适用:

如果文件 dot 或 dot-dot 被指定为操作数的基名部分(即最终路径名部分),或者如果操作数解析为根目录,则 rm 应将诊断消息写入标准错误并且不执行任何操作更多这样的操作数。

相关内容