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:
sudo 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.
sudo service smbd restart
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 (a la papelera de reciclaje):
find . -type f -regextype posix-egrep -iregex "^.*(:encryptable|Zone\.identifier|.fuse_hidden*|goutputstream*|.spotlight-*|.fseventsd*|.ds_store*|Thumbs\.db|attributes:).*$" -exec mv -f {} ~/.local/share/Trash/files \;
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.