Header Ads

Fuse Hidden

En Linux, cuando eliminamos un archivo, en ocasiones genera otro archivo oculto de nombre .fuse_hiddenXXXX (donde XXXX es un alfanumérico aleatorio). Lo anterior sucede porque al momento de eliminar el archivo, algún software lo está utilizando y por eso no se puede eliminar de forma permanente.
Este tipo de archivos (llamados "virtuales") están relacionados con el sistema de archivos en el espacio de usuario FUSE (Filesystem in Userspace) que a diferencia de los tradicionales sistemas de archivos, que, en esencia, guardan y recuperan los datos desde un disco, los sistemas de archivos virtuales en realidad no almacenan datos propios. Actúan como una visualización o traducción de un sistema de archivos existente o dispositivo de almacenamiento.
Podemos verlos con bastante frecuencia en particiones ntfs-3g montadas en Linux, o unidades físicas de Linux compartidas con máquinas virtuales de Windows, etc. (Algo similar sucede con los archivos  Thumbs.db:encryptable).
En realidad no hay que realizar ninguna acción. Basta con esperar que la aplicación que lo está utilizando cierre para que el archivo fuse_hidden desaparezca solo, pero si queremos acelerar este proceso, lanzamos el comando  lsof /path/.fuse_hiddenXXX. Ejemplo:
lsof /home/user/sharefolder/.fuse_hidden0005d93500000002 
Y obtendremos la aplicación que lo tiene "retenido" (en este caso Samba):
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
smbd    28480 root   40uR  REG    8,4    14157 156836 /home/user/sharefolder/.fuse_hidden0005d93500000002
Reiniciamos Samba y se elimina automáticamente el archivo.
service smbd restart
En ocasiones se genera por unidades montadas. Verifique con:
mount | grep gvfs
Hay casos extremos en que, por alguna razón (apagado forzado del PC, y otros casos), el software "libera" el archivo previamente eliminado, pero el  .fuse_hidden no desaparece. En este caso podemos lanzar un comando para que haga una búsqueda en nuestros discos y unidades montadas y elimine éste y otros archivos similares:
# Buscar y eliminar archivos Thumbs.db, Zone.identifier, encryptable, Fuse Hidden, etc.
find . -type f -regextype posix-egrep -iregex "^.*(:encryptable|Zone\.identifier|.fuse_hidden*|goutputstream*|.spotlight-*|.fseventsd*|.ds_store*|~lock.*|Thumbs\.db|*.crdownload|attributes:).*$" -exec rm {} \;
# Elimina reportes antiguos de apport
rm -f /var/crash/*crash
O creamos un script bash y lo programamos en el cron para que cada cierto tiempo haga un escaneo de nuestras unidades y elimine este tipo de archivos, tal y como explicamos en el post Find and Destroy.

Imagen Cortesía Wikimedia
Con la tecnología de Blogger.