Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿rm -rf aún dice “Directory not empty”? Demuestra qué entrada reaparece

No repitas un comando destructivo hasta saber si es el mismo directorio, qué entrada queda o vuelve y si la posee un proceso, montaje, servidor NFS o controlador FUSE.

Diagrama para probar identidad, entradas y dueño
Ilustración original: demuestra qué entrada queda o vuelve. Watch at Ease

No repitas un comando destructivo hasta saber si es el mismo directorio, qué entrada queda o vuelve y si la posee un proceso, montaje, servidor NFS o controlador FUSE.

ENOTEMPTY indica que quedaba una entrada al borrar, pero no identifica al dueño. Un listado vacío puede omitir dotfiles y no prueba estado remoto o concurrente.

1. Fija la identidad del objetivo

Guarda comando exacto, stderr, estado, ruta absoluta, padre, dispositivo, inode, tipo de sistema y origen del montaje. Resuelve enlaces sin modificar y confirma que el nombre aún señala al mismo objeto.

No infieras seguridad de un ls aparentemente vacío. Puede ser otro contenedor o namespace, un bind mount puede ocultar otro árbol o el nombre pudo sustituirse entre intentos.

2. Captura todas las entradas dos veces

Lista entradas ocultas y nombres de bytes extraños sin enviar la salida a rm. Toma dos snapshots con hora, nombres, metadata y device/inode para separar un hijo estable de un nombre recreado.

ENOTEMPTY solo dice que quedaba una entrada al borrar, no por qué. Conserva el nombre exacto y patrones .nfs o .fuse_hidden antes de otra acción.

3. Clasifica al dueño de la reaparición

Para una entrada local, identifica la aplicación o tarea creadora. Para .nfs/.fuse_hidden, busca el proceso que mantiene abierto el archivo. En NFS compara vistas de cliente y servidor con el responsable.

No mates procesos ajenos ni supongas que sudo cambia el estado del sistema de archivos. Un creador o sistema remoto puede repoblar el nombre de inmediato.

4. Aplica la reparación mínima

Detén el writer probado, cierra el handle probado o pide al dueño de almacenamiento reparar el estado remoto/FUSE. Borra solo el hijo y directorio verificados, sin ampliar la ruta ni cruzar sistemas.

Si se aprueba reemplazar el directorio, registra owner, mode, ACL, labels, función de montaje y dueño de servicio. Recrear el nombre no conserva esos contratos.

5. Verifica ausencia y conserva evidencia

Repite snapshots tras borrar, espera el intervalo del writer o caché y confirma ausencia sostenida desde el mismo namespace y la vista autorizada del almacenamiento.

Registra errno original, proceso o capa responsable, acción, hashes/metadata relevantes y rollback. Escala divergencias NFS/FUSE o errores I/O recurrentes.

Decisión para entradas locales, activas y remotas
Ilustración original: elige una reparación mínima tras clasificar. Watch at Ease