Rm
rm -rf
不是原子的嗎?
我剛剛發現了一個令人困惑的錯誤:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
這是由以下命令引起的:
rm -rf $cache_dir/*
其中
$cache_dir
定義為xxx/app/cache
所以我看到它像:
rm
刪除cache/prod
目錄中的所有內容,然後在它試圖刪除cache/prod
目錄之前 - 另一個程序在其中創建了一個文件/目錄,因此導致rm
失敗。我的假設正確嗎?
ENOTEMPTY
給出的錯誤消息是“目錄不為rm
空ENOTEMPTY
”rmdir(2)
(**注意:**為了安全起見,您可以將目錄移動/重命名為新名稱,然後執行刪除此目錄。