Właśnie złapałem mylący błąd:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
który został spowodowany przez następujące polecenie:
rm -rf $cache_dir/*
gdzie $cache_dirjest zdefiniowany jakoxxx/app/cache
Widzę to tak: rmusunąłem wszystko cache/prodz cache/prodkatalogu , a następnie tuż przed próbą usunięcia katalogu - inny program utworzył w nim plik / katalog, co spowodowało rmawarię.
Czy moje założenie jest prawidłowe?
rm -rfbezpieczeństwem wątków: jeśli uruchomisz go wiele razy jednocześnie w tym samym katalogu, katalog zostanie usunięty. Chodzi o to, aby rm -rnie być atomowym.
rmwywołanie, możemy mówić o bezpieczeństwie wątków. Ale i tak nic to nie zmienia
rm -rnie jest atomowe. Jeśli chcesz mieć pewność, że w trakcie działania katalogu nie zostaną utworzone żadne plikirm -rf, możesz najpierw zmienić jego nazwę, a następnie usunąć katalog o zmienionej nazwie.