[EDITAR] No pierda el tiempo leyendo mi pregunta a continuación. Resulta que mi colega es un idiota.. :)
En mi servidor estoy intentando eliminar una carpeta y todas sus subcarpetas con el método habitual rm -rf dirname
, pero falla silenciosamente:
kramer65@vps1:~$ ls -l
total 24
drwxrwxr-x 2 kramer65 kramer65 4096 Jul 11 22:00 backups
drwxrwxr-x 2 kramer65 kramer65 4096 Jul 17 17:37 bin
drwxrwxr-x 3 kramer65 kramer65 4096 Sep 1 11:11 cxs
kramer65@vps1:~$ rm -rf cxs/
kramer65@vps1:~$ ls
backups bin cxs
kramer65@vps1:~$ sudo rm -rf cxs/
kramer65@vps1:~$ ls
backups bin cxs
kramer65@vps1:~$ rmdir cxs/
rmdir: failed to remove ‘cxs/’: Directory not empty
También intenté eliminar todo el contenido del directorio:
kramer65@vps1:~$ cd cxs
kramer65@vps1:~/cxs$ ls
app README.md
kramer65@vps1:~/cxs$ rm -rf *
kramer65@vps1:~/cxs$ ls
app README.md
kramer65@vps1:~/cxs$ sudo rm -rf *
kramer65@vps1:~/cxs$ ls
app README.md
Estoy de acuerdo con los comandos fallidos, si tan solo me dijeran qué está mal. ¿Alguna idea de lo que estoy haciendo mal aquí? ¡Todos los consejos son bienvenidos!
[EDITAR] Intenté lo siguiente (también fue en vano):
kramer65@vps1:~$ sudo rm -vrf cxs/*
removed ‘cxs/app/static/img/face1.jpg’
removed ‘cxs/app/static/img/face2.jpg’
removed ‘cxs/app/static/img/face3.jpg’
[etc.etc.]
removed directory: ‘cxs/app’
removed ‘cxs/README.md’
kramer65@vps1:~$ ls cxs/
app README.md
kramer65@vps1:~$
[EDITAR2] Resulta que un colega tenía un rsync en ejecución que constantemente reescribía los archivos en esa carpeta. Así que los eliminó, pero también los volvió a crear automáticamente. (¡Aquí me estoy golpeando la cabeza contra la pared!)
Respuesta1
Prueba lo siguiente
rm -rf /the/full/dir
Respuesta2
Verifique los atributos extendidos de los archivos:
lsattr -R /cxs
Si alguno tiene el i
atributo establecido, entonces es inmutable, lo que significa que no se puede eliminar.
Elimine el atributo inmutable con:
chattr -i <path to file/directory>
Luego intente eliminar nuevamente.
Tenga en cuenta que un archivo con el atributo inmutable establecido normalmente no falla silenciosamente cuando intenta eliminarlo, sino que se queja de "Operación no permitida".