Wie entferne ich einen Ordner mit einem "falschen" Namen auf El Capitan oder benenne ihn um?

3

Auf meinem iMac habe ich einen Ordner mit dem Namen "ZipIt 2.2.2␀", der von früheren Systemen übrig geblieben ist. Ich kann es weder im Finder noch im Terminal löschen oder umbenennen noch die darin enthaltenen Dateien löschen. Wenn ich mir diese Frage und die dazugehörigen Antworten anschaue, ist dies ein Fehler in Mac OS 10.11 (und höher?), Der mit dem Vorhandensein von NULZeichen im Namen zusammenhängt.

Ich habe kein älteres Mac OS zur Hand. Ich habe versucht, den Ordner mit Onyxund A Better Finder Rename 10ohne Erfolg umzubenennen . Ich habe auch versucht, von Mac OS Recovery zu booten, konnte aber nichts Nützliches tun.

Irgendwelche Ideen?

BEARBEITEN.

Hier ist die Ausgabe, die ich vom Terminal erhalte, wenn ich find verwende:

    % 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

BEARBEITEN 2.

Ich habe über einen möglichen Ausweg nachgedacht, weiß aber nicht, ob es machbar ist. Ich könnte einen neuen Benutzer erstellen, den betreffenden Ordner auf den Desktop übertragen und den Benutzer dann löschen.

Glauben Sie, dass dies effektiv sein könnte? Ich würde es gerne versuchen, aber ich fürchte, das könnte das ganze System hängen.

EDIT 3

Wie von Allan angefordert, ist hier der detaillierte Inhalt des Ordners, den ich nicht löschen kann:

% 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
quelle
Kann man ein Verzeichnis mit dem Inode fest verknüpfen, dann kann man zumindest die Dateien löschen. Behebt die Reparatur des Dateisystems im Festplatten-Dienstprogramm den Verzeichnisnamen?
Thorbjørn Ravn Andersen

Antworten:

1

Mit der Bash-Shell können Sie die Vervollständigungsfunktion ausprobieren. Beispiel

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"/

Geben Sie einfach ein rm -rf "this, drücken Sie die TAB-Taste und die Bash erledigt den Rest. Vergessen Sie nicht das ".

Bei Dateien mit seltsamen Dateinamen können Sie Folgendes versuchen:

rm -- "<start typing filename and hit TAB key>"
Garex
quelle
Funktioniert nicht: Die übliche Folge von "Ungültiges Argument" wird angezeigt. Es ist kein Problem des Terminals, es ist das Betriebssystem, das sich weigert, einen Namen zu verstehen, der "NUL" enthält.
Aretino
0

Versuchen Sie es über die Inode zu entfernen.

Holen Sie sich zuerst die Inode:

$ls -li

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

Die Inode ist die erste Zahlenspalte. Führen Sie dann unter Verwendung dieser Nummer den folgenden Befehl aus:

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

Wobei XXXXXXXXX der tatsächliche Inode der zu löschenden Datei / des zu löschenden Verzeichnisses ist.

Allan
quelle
Versuchte das (nur mit -r) und bekam nur eine Fortsetzung von "Invalid argument". Auch mit mv statt rm probiert und das gleiche Ergebnis erzielt.
Aretino
Bitte posten Sie die Ausgabe des $ls -liund den genauen Befehl, den Sie verwendet haben. Es ist schwer zu sehen, was so weit weg passiert.
Allan
Das habe ich zu meiner Frage hinzugefügt.
Aretino
Es gehört root dem Befehl mit Vorwort sudo.
Allan
Ich bekomme rm: ./ZipIt 2.2.2␀/.DS_Store: Invalid argumentund so weiter. Ich vermute, es gibt nichts zu tun.
Aretino