ディレクトリのアトミック削除

ディレクトリのアトミック削除

rename(2)次が呼び出されるので、mvアトミックであると仮定するのは安全ですか?

$ mv /home/me/someDir /tmp/toBeDeleted
$ rm -rf /tmp/toBeDeleted

ベストアンサー1

これmv注文する~と呼ばれるrenameシステムコール、原子性を保証します。しかし、2つの例外があります。

  • ソースとターゲットが異なるファイルシステムにある場合(通常/homeは一般的)、/tmpソースツリーをターゲットにコピーしてからソースツリーを削除するように機能しますrenamemvこれは明らかに原子的ではありません。
  • rename一部のNFS実装など、一部のファイルシステムはアトミックではありません。 「一般」ローカルファイルシステムでは、renameこれはアトミックです。

おすすめ記事