`rm -rf`はアトミックではありませんか?

`rm -rf`はアトミックではありませんか?

ちょっと混乱しているエラーが見つかりました。

rm: cannot remove `xxx/app/cache/prod': Directory not empty

これは次のコマンドによって発生します。

rm -rf $cache_dir/*

これは$cache_dir次のように定義されます。xxx/app/cache

だから私はこれが次のように進んでいると思います:rm私はdirのすべてを削除しcache/prodてからcache/prodディレクトリを削除しようとする前に、他のプログラムがその中にファイル/ディレクトリを生成してrmエラーを引き起こしました。

私の家は正しいですか?

ベストアンサー1

指定されたエラーメッセージは、「ディレクトリが空ではありません」()です。あなたの仮定が正しいと思われる場合、これはプログラムがファイルを削除しようとする前にディレクトリにファイルを生成し、デフォルトの予想エラーがENOTEMPTY競合状態です。rmENOTEMPTYrmdir(2)

メモ:安全のために、ディレクトリを新しい名前に移動するか、名前を変更してからこのディレクトリを削除できます。

おすすめ記事