$HOMEが見つかったときに 'rmdir -p --ignore-fail-on-non-empty'が失敗するのはなぜですか?

$HOMEが見つかったときに 'rmdir -p --ignore-fail-on-non-empty'が失敗するのはなぜですか?

次のコマンドを検討してください。

cd /
mkdir -p ~/a/b
touch ~/a/content
# Removes dir 'b' and stops at 'a' because it's non-empty.
# (This is the expected behavior.)
rmdir -p --ignore-fail-on-non-empty ~/a/b

rm ~/a/content
mkdir -p ~/a/b
# Fails with error: "rmdir: failed to remove directory '/home/myhome'".
rmdir -p --ignore-fail-on-non-empty ~/a/b

rmdir最後の段階でなぜ失敗しましたか?なぜ削除しようとするのですか?空ではない $HOME止める代わりに?

ベストアンサー1

内容は次のとおりですman rmdir

--null 以外のエラーを無視します。

すべての失敗を無視するホロディレクトリが空ではないため

つまり、何らかの理由でディレクトリを削除できません。その他空の場合を除き、エラーは報告され続けます。

/home通常のユーザーは通常、修正(自分のホームディレクトリの削除を含む)を実行するのに十分な権限がないため、このように呼び出すとrmdir「許可拒否」エラーのみが発生します。

以下を試してみると、簡単に確認できます。

rmdir ~

結果は次のとおりです。

rmdir: failed to remove '/home/youruser': Permission denied

おすすめ記事