Sadece kafa karıştırıcı bir hata yakaladım:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
Aşağıdaki komutun neden olduğu:
rm -rf $cache_dir/*
nerede $cache_dir
olarak tanımlanırxxx/app/cache
Bu yüzden şöyle görüyorum: dir rm
içindeki her şeyi kaldırdı cache/prod
, sonra cache/prod
dizini kaldırmaya çalışmadan hemen önce - başka bir program içinde bir dosya / dizin oluşturdu, bu da rm
başarısızlığa neden oldu .
Varsayım doğru mu?
rm -rf
iş parçacığı güvenli olmasıyla bir ilgisi yoktur : aynı dizinde aynı anda birden çok kez çalıştırırsanız, dizin silinir. Bu rm -r
atomik olmamakla ilgili .
rm
çağırma olarak "iş parçacığı" olduğunu varsayarsak , iş parçacığı güvenliği hakkında konuşabiliriz. Her neyse, hiçbir şey
rm -r
atomik değil. Çalışırken dizinde başka dosya oluşturulmadığından emin olmak istiyorsanız, önce dosyayırm -rf
yeniden adlandırabilir, ardından yeniden adlandırılan dizini kaldırabilirsiniz.