![なぜ `rm -r .` ができないのですか? [コピー]](https://linux33.com/image/73875/%E3%81%AA%E3%81%9C%20%60rm%20-r%20.%60%20%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
私が自分に何度も尋ねた質問の1つは、なぜ以下を使用して現在の作業ディレクトリを削除できないことです。rm -r .
シェルには存在しないディレクトリを作業ディレクトリとして使用する問題がないので、rm -r "../$(basename "$(pwd)")"
.
なぜ2つのsは異なりますが、rm
andの出力は変わらず、cwdは同じですか?realpath .
realpath "../$(basename "$(pwd)")"
rm
答え1
説明したように'rm .*'親ディレクトリを削除しましたか?POSIX 仕様の次の部分が適用されます。
ファイルポイントまたはドットポイント(dot-dot)がオペランドのデフォルト名部分(つまり、最終パス名部分)として指定されている場合、またはオペランドがルートディレクトリとして解決される場合、rmは標準エラーに診断メッセージを書き、何もしないでください。 。