9 votes

Disque externe, impossible de vider la corbeille, rm voit un fichier, mais pas ls -la

Je nettoyais un dossier de musique sur mon disque externe et j'ai trouvé un répertoire que je ne peux pas supprimer quoi que j'essaie.

Si je le mets dans la corbeille via le GUI

L'opération ne peut être effectuée car l'élément "dossier" est en cours d'utilisation.

Si j'utilise rm -rf pour le retirer via le terminal

$ rm -rf folder/
rm: folder/: Directory not empty

Si j'utilise ls -la pour vérifier son contenu

$ ls -la
total 512
drwxrwxrwx  1 user  staff  131072 Jan  3  2017 .
drwxrwxrwx  1 user  staff  131072 Jan  3  2017 ..

*Si j'utilise `rm -i ` dans le dossier**

$ rm -i *
rm: 03 - Elusion.mp3: No such file or directory

Si j'utilise sudo lsof +D folder/ pour vérifier si des fichiers sont ouverts

Rien n'est renvoyé à la sortie du programme.

Si j'utilise l'Utilitaire de disque pour réparer (premier secours) le disque et le volume

Le bilan de santé a été passé et aucune réparation n'a été entreprise.

Si je redémarre MacOS

Le problème persiste.

Informations supplémentaires :

  • Je peux déplacer le dossier dans le lecteur, mais pas vers un autre lecteur.

  • Je peux renommer le dossier.

  • ls -i *.mp3 renvoie à ls: 03 - Elusion.mp3: No such file or directory même que rm -i *.mp3 .

  • Le fichier ne s'affiche pas dans le Finder, c'est ce qui est déroutant, quel que soit le problème d'affichage du nom de fichier que Terminal pourrait avoir (je l'ai toujours configuré pour utiliser Unicode - UTF-8 ), je pense qu'il y a plus de forces en jeu.

En réponse aux questions, non, ls -ib ne renvoie rien.

$ ls -i
$ ls -ib
$ ls -laib
total 512
2762318 drwxrwxrwx  1 user  staff  131072 Jan  3  2017 .
2685260 drwxrwxrwx  1 user  staff  131072 Jan  3  2017 ..

Donc apparemment il y a quelque chose en elle mais ls -la ne pouvait pas le voir, tandis que rm -i est bizarre avec le nom du fichier ?

get info Le menu contextuel de l'interface graphique a confirmé qu'il y a un élément dans le dossier, mais avec zéro octet, et il n'apparaît certainement pas dans le Finder.

Je ne suis pas sûr de ce qu'il faut faire à ce stade. Toute aide est la bienvenue !

(Utilisation de 10.13.4 + ExFAT sur un disque externe)

11voto

Mapad Points 3033

Le problème semble être causé par un fichier nommé 03 - Elusion.mp3 situé dans le répertoire nommé dossier .

Parce que Terminal.app est incapable de restituer les signes diacritiques dans les noms de fichiers - enfin, il l'est, mais c'est au-delà de la portée de la solution la plus simple pour vous - il cache son échec en masquant le nom de fichier (quelque chose que je n'avais jamais entendu jusqu'à présent ; peut-être est-ce dû aux changements apportés par High Sierra à /.file, /.volfs et aux inodes 64 bits ? Attendez, ce n'est pas grave ; votre modification de votre question me dit que je vous ai mal compris). Quoi qu'il en soit, l'existence du fichier est connue, ainsi que l'affirmation ironique du Finder selon laquelle il n'existe pas. De toute évidence, il existe. Voici comment changer cela :

Tout d'abord, déterminez le numéro d'inode du fichier. Dans Terminal.app, cd dans le répertoire "folder" et lancez cette commande : ls -i *.mp3

Copiez la chaîne de numéros de l'inode fourni dans la colonne de gauche de la réponse, qui sera quelque chose comme

12345678 03 - E lusion.mp3

--et le mettre dans cette commande, qui le renommera en quelque chose que le terminal peut rendre correctement :

find . -inum 12345678 -exec mv {} deletemenow \;

--Vous obtenez le fichier "deletemenow" dans le dossier "folder", dont vous pouvez disposer de la manière qui vous convient le mieux.

9voto

bitinn Points 416

Il m'a fallu beaucoup de temps pour arriver à ce résumé, mais je pense que c'est la réponse définitive.

La cause de mon problème est une personne connue :

OS X est un cas à part, à la fois parce qu'il normalise les noms de fichiers et parce que il utilise le NFD au lieu du NFC, plus courant. .

Historiquement (pas si vieux, avant l'ère 10.11), OS X + HFS+ impose la forme NFD sur tous les noms de fichiers et vous n'obtiendrez le résultat de la BDNF qu'à partir des commandes et des appels système.

Puis les choses commencent à changer, en 10.11, certains résultats d'appels système sont normalisés en NFC Ce qui le met en conformité avec Windows et Linux, mais au prix de la rupture de certains programmes qui attendent le BDNF sur OS X.

Mais depuis l'introduction de MacOS 10.13 + AFPS, le comportement change à nouveau : Apple décide qu'il veut normaliser en NFD sur l'affichage et les appels système mais en laissant les noms de fichiers originaux tels quels (ainsi, NFC et NFD sont tous deux supportés, mais si vous sélectionnez le nom de fichier dans le Finder ou copiez ls résultat en Terminal, vous obtenez la forme NFD).

Tout cela est génial, jusqu'à ce que vous mettiez un fichier avec un nom de fichier BDNF dans un disque externe utilisant exFAT. (car c'est le seul format multi-MacOS/Windows qui prend en charge les fichiers de plus de 4 Go) : MacOS 10.13 croit d'une certaine manière que votre fichier doit être au format NFC, ce qui fait qu'il buggue.

En fait, voici un test rapide, j'ai un dossier dans Windows sur mon disque exFAT avec 3 fichiers :

enter image description here

  • test.mp3
  • Elusion.mp3 ( E en NFC)
  • 03 - Elusion ( E en BDNF)

(Vous pouvez copier l'unicode exact ici )

Lorsque je les monte sur mon MacOS, voici ce que je vois :

enter image description here

y ls -laib résultat :

$ ls -laib
total 46592
2762318 drwxrwxrwx  1 user  staff    131072 Jan  3  2017 .
2685260 drwxrwxrwx  1 user  staff    131072 Jan  3  2017 ..
1572961 -rwxrwxrwx  1 user  staff  11672464 Aug 23  2014 Elusion.mp3
1572871 -rwxrwxrwx  1 user  staff  11672464 Aug 23  2014 test.mp3

Comme vous pouvez le voir, le fichier NFC est présent mais le fichier NFD est absent.

Même si vous êtes au courant de la Problème NFC/NFD sur OS X Vous ne vous attendez pas à ce qu'un disque externe exFAT soit confronté à ce problème dans le sens inverse (NFC est bien, mais NFD est en feu).

Mais qu'est-ce qui a pu faire que mon fichier musical utilise le nom de fichier NFD en premier lieu :

  • J'ai initialement téléchargé ce fichier musical sur 10.9/10.10 avec un ancien Mac, qui applique le nom de fichier NFD.
  • A un moment donné, je les déplace sur un disque Windows + NTFS, qui n'applique pas NFC/NFD, donc le nom de fichier NFD original est préservé.
  • Maintenant, je veux déplacer ce fichier vers mon MacOS 10.13 + APFS en utilisant un lecteur exFAT (exFAT supporte la même convention UTF-16 que NTFS).
  • L'enfer se déchaîne.

J'aurais pu copier le fichier via un lecteur en réseau ou TeamViewer, et tout se serait bien passé, mais c'est exFAT qui déclenche ce bogue sur MacOS.

Leçons :

  • Le nom de fichier unicode est toujours une menace.
  • Vous avez besoin de Windows/Linux pour résoudre ce problème (si vos fichiers sont sur un disque externe exFAT).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X