J'ai des problèmes pour supprimer un répertoire sur mon système MacOS Mojave 10.14.3.
Le système de fichiers est APFS et voici les symptômes :
$ rm -rf strange/
rm: strange/: Directory not empty
$ sudo rm -rf strange/
Password:
rm: strange/: Directory not empty
$ ls -lia strange/
total 0
786499 drwxr-xr-x 3 kk staff 96 Feb 26 18:56 .
430961 drwxr-xr-x+ 49 kk staff 1568 Feb 26 21:50 ..
$ ls -lid strange/
786499 drwxr-xr-x 3 kk staff 96 Feb 26 18:56 strange/
Remarquez que le nombre de liens pour le répertoire est de 3. Un répertoire vide fraîchement créé a un nombre de liens de 2.
Aucun autre fichier ou répertoire sur le système n'a le même numéro d'inode (ceci a été vérifié en utilisant sudo find / -inum 786499
), et je crois que les répertoires sur les systèmes de fichiers APFS ne peuvent pas avoir de liens en dur supplémentaires de toute façon (comme ils peuvent le faire avec HFS+).
Le fait de placer le répertoire dans la corbeille et de le vider renvoie une boîte de dialogue contenant le texte suivant
L'opération ne peut être achevée car l'élément "étrange" est en cours d'utilisation.
Cependant, le fonctionnement sudo lsof "$HOME/strange"
(après avoir ramené le répertoire dans mon répertoire personnel) ne donne rien, et le redémarrage de la machine ne change rien. L'utilisation de sudo lsof +L1
(listant les fichiers ouverts dont le nombre de liens est égal à zéro, c'est-à-dire les fichiers supprimés maintenus ouverts par une application) ne révèle pas non plus de chemins sous la rubrique strange
répertoire.
Le répertoire n'a pas d'ACL ni d'attributs étendus :
$ ls -lde@ strange/
drwxr-xr-x 3 kk staff 96 Feb 26 18:56 strange/
Faire une copie du répertoire à l'aide du Finder crée strange copy
. Ce répertoire de copies a un nombre de liens de 2 et peut être supprimée. Curieusement, la boîte de dialogue "Get Info" du Finder indique que chaque répertoire (original et copie) contient un élément (elle indique généralement zéro élément pour les répertoires vides nouvellement créés).
$ ls -la strange*
strange:
total 0
drwxr-xr-x 3 kk staff 96 Feb 26 23:57 .
drwxr-xr-x+ 49 kk staff 1568 Feb 27 10:36 ..
strange copy:
total 0
drwxr-xr-x 2 kk staff 64 Feb 26 23:57 .
drwxr-xr-x+ 49 kk staff 1568 Feb 27 10:36 ..
L'exécution de "First Aid" à l'aide de l'"Utilitaire de disque" de MacOS ne change rien (elle renvoie "Successful" à la fin). Et ce, que l'opération soit effectuée sur le système réel ou en mode sauvetage.
La course à pied fsck_apfs -y
sur le disque en mode Rescue fait produit un certain nombre d'avertissements sur l'un des instantanés du système de fichiers du type suivant :
warning: Cross Check : Mismatch between extentref entry reference count (1) and calculated fsroot entry reference count (0) for extent (0x236654a + 4)
Cela ne semble pas être réparé par fsck_apfs
mais
Des indices sur la manière de supprimer ce répertoire ?
Pour ceux qui se posent la question, le répertoire a été initialement trouvé comme un sous-répertoire d'un jeu Steam (Factorio, version 0.17.0). Le chemin original du répertoire était ~/Library/Application Support/Steam/steamapps/common/Factorio/factorio.app/Contents/data/base/campaigns/demo/locale/ru
. La partie de demo
vers le bas, le jeu ne démarrait pas correctement (il était vide, à part les répertoires, mais le jeu essayait de récupérer un fichier inexistant dans le répertoire demo
et s'est écrasé). En déplaçant le répertoire, le jeu est devenu jouable, mais j'ai découvert par la suite que le répertoire le plus en bas de l'écran, le ru
n'a pas pu être supprimé. Voici le répertoire que j'ai ensuite renommé strange
et à laquelle je me réfère tout au long de cette question.
J'ai fait part de mes observations à Apple à ce sujet, mais je ne suis pas un développeur Apple et je ne peux donc pas soumettre de rapport de bogue officiel.