次のコマンドを検討してください。
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