28 votos

Cómo eliminar .fuse_hidden* los archivos?

He pequeño servidor Linux (Debian Squeeze) que se ejecuta un servidor Samba que está configurado para compartir algunas carpetas con algunos equipos de windows. Al tratar de eliminar uno de los directorios de windows he recibido el "No se puede eliminar la carpeta de error".

Traté de borrar el directorio desde la consola de linux tengo un error similar:

# rm dir-name -rf
rm: cannot remove `dir-name': Directory not empty

Hice una lista el contenido del directorio y encuentra un archivo con el nombre .fuse_hidden seguido por un número hexadecimal (000bd8c100000185).

# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000185

Traté de borrar el .fuse_hidden archivo, pero un nuevo archivo fue creado instantáneamente (tenga en cuenta que el número hexadecimal a cambio).

# rm dir-name/.fuse_hidden000bd8c100000185
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000186

También he intentado usar el Midnight Commander para eliminar el archivo sin éxito.

Otras soluciones que he encontrado hasta ahora implican GUI y solo tengo la consola.

Cualquier sugerencia se agradece.

44voto

Andrew B Puntos9763

Esto es similar a lo que sucede cuando se elimina un archivo que otro sistema en el que se ha abierto en un montaje NFS. El problema es que el archivo ha sido eliminado del sistema de archivos, mientras que su "vínculo de la cuenta" fue >1, lo que significa que otros procesos aún se mantiene abierta.

  • Registro en el sistema en el archivo físicamente reside. (no montaje de la red)
  • Ejecutar lsof dir-name/.fuse_hidden000bd8c100000185 a averiguar qué procesos se están sosteniendo el identificador de archivo abierto.
  • Terminar los procesos si tiene sentido, o averiguar cuáles son los pasos que puede realizar para "correctamente" liberar el identificador de archivo abierto sin terminar el proceso.

Normalmente, cuando se elimina un archivo en el sistema de ficheros local que otro proceso se ha abierto, el sistema operativo cumple con su solicitud y se quita el árbol de directorios, pero el inodo que el árbol de los puntos que se considera todavía en uso por el sistema operativo. Cada vez que se abre un archivo, su "vínculo de la cuenta" aumenta de uno en uno, y el espacio sólo es verdaderamente liberada cuando vínculo contar golpea a cero.

Cuando se ejecuta en un problema de esta naturaleza, lo que significa que el sistema operativo tiene por alguna razón decidió no eliminar ese archivo en el árbol de directorios: generalmente porque tiene razón para creer que todavía necesitan ser accedidos por cosas que no pueden utilizar el directo número de inodo. Podría parecer inicialmente a cumplir, pero detrás de las escenas de la OS cambia el nombre a tener un escondido dot-prefijo de modo que sea accesible con algún tipo de sistema de ficheros ruta de abordar. El espacio todavía será liberado cuando el enlace contar golpea a cero, pero ese objeto permanecerá en el directorio hasta que los vínculos se han ido.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: