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_dir
jest zdefiniowany jakoxxx/app/cache
Widzę to tak: rm
usunąłem wszystko cache/prod
z cache/prod
katalogu , a następnie tuż przed próbą usunięcia katalogu - inny program utworzył w nim plik / katalog, co spowodowało rm
awarię.
Czy moje założenie jest prawidłowe?
rm -rf
bezpieczeń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 -r
nie być atomowym.
rm
wywołanie, możemy mówić o bezpieczeństwie wątków. Ale i tak nic to nie zmienia
rm -r
nie 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.