J'ai essayé de supprimer un répertoire, mais
$ rm DE.aspx_files -r
rm: cannot remove `DE.aspx_files': Directory not empty
Mais lister son contenu n'en retourne aucun
$ ls DE.aspx_files
$
Ajouté: En fait
$ ls -la DE.aspx_files
total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting 0 Sep 13 22:34 ..
-rw------- 1 ting ting 0 Sep 13 22:34 .fuse_hidden0001d4bf00000006
Quand j'essaye rm .fuse_hidden0001d4bf00000006
, il est supprimé, mais un autre nouveau est .fuse_hidden0001d4bf00000007
créé.
Je me demande donc ce qui s'est passé et comment résoudre ce problème?
Remarque: il s'agit d'un disque dur externe portable nouvellement acheté, et je copie simplement certains fichiers sur celui-ci à l'aide d'un programme de récupération de données.
OS: Ubuntu 12.04
Merci!
mount | fgrep fuse
de le trouver etfusermount -u <mountpoint>
de le démonter avant d'essayer de supprimer votre répertoire.Réponses:
Fichiers cachés
Vous pouvez avoir des fichiers cachés. Vous pouvez les trouver avec
ls -la
pour vous assurer que vous êtes d'accord avec vraiment les supprimer en premier. Ensuite, vous pouvez supprimer les fichiers avant d'exécuterrm -r
ourmdir
selon les besoins.Forcer la suppression récursive
Vous pouvez également simplement faire
rm -rf
pour forcer la suppression récursive même si le répertoire cible contient des fichiers. Tous les avertissements habituels s'appliquent, mais cela fera le travail indépendamment de ce que contient votre répertoire - tant que vous avez les autorisations pour supprimer les fichiers et les répertoires, bien sûr.la source
find DE.aspx_files -exec ls -la {} \;
pour identifier les fichiers cachés ou les fichiers nommés avec des caractères spéciaux.Les fichiers du formulaire
.fuse_hidden*
sont créés par les systèmes de fichiers FUSE lorsqu'un fichier est supprimé mais toujours utilisé quelque part et doivent toujours avoir une entrée de répertoire. Ceci est similaire aux.nfs*
fichiers des répertoires exportés via NFS .Exécutez
df -T .
pour voir le type de système de fichiers monté sur le répertoire actuel et son point de montage. Pour un disque dur externe, il s'agit probablement d'un système de fichiers NTFS monté via le pilote NTFS-3G , qui est basé sur FUSE.Le nom est un faux nom que le pilote du système de fichiers invente pour un fichier supprimé. Vous ne pouvez pas supprimer le fichier (ou plutôt, si vous créez le fichier, il réapparaît sous un autre nom). Vous ne pouvez pas non plus supprimer le répertoire, car il n'est pas vide. Vous devrez trouver ce qui utilise ce fichier. La cause la plus probable d'être utilisé est s'il est ouvert par une application. Exécutez
lsof /media/mount-point
où se/media/mount-point
trouve le point de montage du système de fichiers et recherchez un fichier ouvert dans ce répertoire.la source
Pour les disques durs externes, ce problème peut être résolu par,
Move to Trash
Cela a fonctionné pour moi même si cela
rm -rf
n'a pas fonctionné.la source
Si sur le mac, faites également attention aux fichiers * .localized, qui peuvent devenir invisibles même pour 'ls -la', 'find' et leurs semblables sur un système de fichiers FUSE. [Cela a été découvert à l'aide d'un système de fichiers FUSE créé par ConnectedData Transporter sur un MacBook Pro.]
la source
Cela peut également se produire lorsque vous amorcez un fichier dans un client torrent. Assurez-vous simplement d'éteindre le client torrent ou de supprimer le torrent d'amorçage.
la source