Comment supprimer ou renommer un dossier avec un «mauvais» nom sur El Capitan?

3

Sur mon iMac, j'ai un dossier, laissé des systèmes précédents, nommé "ZipIt 2.2.2␀". Je ne peux ni le supprimer, ni le renommer, ni supprimer les fichiers qu'il contient, à la fois du Finder et du Terminal. En regardant cette question et les réponses connexes, je comprends qu’il s’agit d’un bogue de Mac OS 10.11 (et ultérieur?), Lié à la présence de NULcaractère dans le nom.

Je n'ai pas un Mac OS plus ancien sous la main. J'ai essayé de renommer le dossier avec Onyxet A Better Finder Rename 10mais sans succès. J'ai également essayé de démarrer à partir de Mac OS Recovery mais je n'ai rien pu faire d'utile.

Des idées?

MODIFIER.

Voici le résultat obtenu de Terminal lorsque j'utilise find:

    % ls -li
    total 0
    1067625 drwxrwxrwx+ 6 root  wheel  204 25 Mag  2011 ZipIt 2.2.2

    % sudo find . -inum 1067625 -mount -exec rm -rf {} \;
    rm: ./ZipIt 2.2.2␀/.DS_Store: Invalid argument

[... many similar lines ...]

    rm: ./ZipIt 2.2.2␀: Invalid argument

EDIT 2.

J'ai pensé à une issue possible, mais je ne sais pas si c'est viable. Je pourrais créer un nouvel utilisateur, transférer le dossier incriminé sur son bureau, puis supprimer l'utilisateur.

Pensez-vous que cela pourrait être efficace? Je voudrais essayer, mais je crains que cela puisse bloquer tout le système.

EDIT 3

À la demande d'Allan, voici le contenu détaillé du dossier que je ne peux pas supprimer:

% find . -type d -name 'Zip*' -print0 | xargs -0 -J -t ls
./ZipIt 2.2.2␀:
Drop files here to zip (OS_X)   ZipIt.app
Read me.pdf

./ZipIt 2.2.2␀/ZipIt.app:
Contents    ZipIt

./ZipIt 2.2.2␀/ZipIt.app/Contents/Resources/ZipIt Help:
ZipIt Help idx  ZipIt help  faq     images
Aretino
la source
pouvez-vous lier un répertoire à l’inode, vous pouvez au moins supprimer les fichiers. Le système de fichiers de réparation dans l'utilitaire de disque va-t-il corriger le nom du répertoire?
Thorbjørn Ravn Andersen

Réponses:

1

En utilisant le shell bash, vous pouvez essayer la fonctionnalité d'achèvement. Exemple

Ravens-Claw:tmp garex$ mkdir "this\ is\ a\ bad\ folder\ with\ äü\ encoding"
Ravens-Claw:tmp garex$ ls -ltr | tail -1
drwxr-xr-x  2 garex  wheel   68 13 Jun 19:17 this\ is\ a\ bad\ folder\ with\ äü\ encoding
Ravens-Claw:tmp garex$ rm -rf "this\\ is\\ a\\ bad\\ folder\\ with\\ äü\\ encoding"/

Il suffit de taper rm -rf "this, d'appuyer sur la touche TAB et bash fera le reste. N'oubliez pas de fermer le ".

Pour les fichiers avec des noms de fichiers étranges, vous pouvez essayer:

rm -- "<start typing filename and hit TAB key>"
Garex
la source
Ne fonctionne pas: la séquence habituelle de "Argument invalide" apparaît. Ce n’est pas un problème de Terminal, c’est l’OS qui refuse de comprendre un nom contenant "NUL".
Aretino
0

Essayez de le supprimer via l'inode.

D'abord, récupérez l'inode:

$ls -li

275505305 drwxr-xr-x   2 allan  staff    68B Jun 11 10:33 foobar

L'inode est la première colonne de nombres. Ensuite, en utilisant ce numéro, exécutez la commande suivante:

$ find . -inum XXXXXXXXX -mount -exec rm -rf {} \; 

Où XXXXXXXXX est l'inode réel du fichier / répertoire que vous souhaitez supprimer.

Allan
la source
J'ai essayé ça (avec -r seulement) et je n'ai eu qu'une suite de "Argument invalide". Aussi essayé avec mv au lieu de rm et a obtenu le même résultat.
Aretino
Veuillez poster le résultat de la $ls -licommande et la commande exacte que vous avez utilisée. Il est difficile de voir ce qui se passe si loin.
Allan
J'ai ajouté cela à ma question.
Aretino
Il appartient à root Préface avec la commande sudo.
Allan
Je reçois rm: ./ZipIt 2.2.2␀/.DS_Store: Invalid argumentet ainsi de suite. Je soupçonne qu'il n'y a rien à faire.
Aretino