Acabo de detectar un error confuso:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
que fue causado por el siguiente comando:
rm -rf $cache_dir/*
donde $cache_dirse define comoxxx/app/cache
Entonces lo veo así: rmeliminé todo en el cache/proddirectorio, luego justo antes de intentar eliminar el cache/proddirectorio; otro programa creó un archivo / un directorio dentro de él, por lo que causó un rmerror.
¿Es correcta mi suposición?
rm -rfser seguro para subprocesos: si lo ejecuta varias veces al mismo tiempo en el mismo directorio, el directorio se eliminará. Esto se trata de rm -rno ser atómico.
rminvocación, podemos hablar sobre seguridad de thread. Pero de todos modos, no cambia nada
rm -rno es atómica. Si desea asegurarse de que no se creen más archivos en el directorio mientras serm -rfestá ejecutando, puede cambiarle el nombre primero y luego eliminar el directorio renombrado.