Acabei de pegar um erro confuso:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
que foi causado pelo seguinte comando:
rm -rf $cache_dir/*
onde $cache_diré definido comoxxx/app/cache
Então, eu vejo como: rmremoveu tudo no cache/proddiretório e logo antes de tentar remover o cache/proddiretório - outro programa criou um arquivo / diretório dentro dele, causando rmfalha.
Minha suposição está correta?
rm -rfsegurança de threads: se você executá-lo várias vezes simultaneamente no mesmo diretório, o diretório será excluído. Trata-se de rm -rnão ser atômico.
rminvocação, poderemos falar sobre segurança de threads. Mas de qualquer maneira, isso não muda nada
rm -rnão é atômica. Se quiser ter certeza de que não há mais arquivos criados no diretório enquanto esterm -rfestiver em execução, renomeie-o primeiro e remova o diretório renomeado.