Ist es unmöglich, eine Datei mit dem Namen "␀" auf einem Mac zu löschen/verschieben?

Wenn ich versuche, eine im Finder benannte Datei zu verschieben, umzubenennen oder zu löschen, erhalte ich diese Fehlermeldung:

Der Vorgang kann nicht abgeschlossen werden, da ein unerwarteter Fehler aufgetreten ist (Fehlercode -50).

Mit mv, rmoder find -deleteim Terminal

 rm: /Library/␀: Invalid argument
 mv: rename /Library/␀ to /tmp/␀: Invalid argument
 find: -delete: unlink(/Library/␀): Invalid argument

Kann ich diese Datei in Mac OS X verschieben oder löschen oder muss ich ein anderes Betriebssystem verwenden?

Ich habe sogar versucht, eine Datei mit diesem Namen zu erstellen, /tmpund sie ist seit 8 Neustarts nicht verschwunden.

Haben Sie versucht, etwas anderes als eine Shell zu verwenden? ZB Pythons osModul?

Antworten (4)

Sie können versuchen, die Datei anhand ihrer Inode-Nummer zu entfernen. Listen Sie die Dateien in /Library mit der -iOption auf

ls -il /Library

Die erste Spalte ist die Inode-Nummer der Datei. Dann benutzefind

find /Library -inum XXXXXXX -delete

wobei XXXXXX die Inode-Nummer der Datei ist.

Ich weiß nicht, warum mein Kommentar gelöscht wurde, aber dies übergibt nur den Dateinamen, um die Verknüpfung aufzuheben, und gibt mir den gleichen Fehler "Ungültiges Argument".

Dies scheint nur ein 10.11-Problem zu sein, daher ist es zumindest unter 10.11 unmöglich, es zu löschen, aber Sie können dies sehr wahrscheinlich unter jeder anderen OS X-Version als 10.11 löschen (ich habe 10.4 und 10.10 ausprobiert und konnte Dateien mit diesem Zeichen löschen ).

Der Fehler liegt auf der Erstellungsseite. Andernfalls würden viele Befehle in einer Unix-Umgebung fehlschlagen. Zum Beispiel find -print0...xargs

Einige neuere macOS-Systeme haben Probleme mit Dateinamen, die das „Null“-Zeichen enthalten. Das System interpretiert „nul“ als Ende des Dateinamens und kann die Datei daher nicht finden. Sie könnten versuchen, von einem anderen System zu booten, oder den Target Disk-Modus verwenden und ihn mit einem Mac mit einem älteren macOS-System (Mountain Lion usw.) verbinden. Das Löschen aus dem Wiederherstellungsmodus über die Befehlszeile könnte funktionieren, oder Sie könnten die Inode-Nummer von fd0 ausprobieren Methode.

Es wird immer einen Inode geben, um eine Datei mit einem problematischen Dateinamen zu löschen. Wahrscheinlich viel einfacher, als das Dateisystem auf ein anderes Betriebssystem zu übertragen.
mkdir tmp; mv * tmp; cd tmp; mv [A-Z]* [a-z]* [1-3]* ..; rm *; cd ..; rmdir tmp
Willkommen bei Ask Different und vielen Dank für Ihre Antwort. :) Leider liefern kurze Antworten wie diese nicht wirklich genug Details oder Kontext, um vielen Benutzern zu helfen. Wenn möglich, wäre es gut, wenn Sie weitere Informationen darüber hinzufügen könnten, was ein Benutzer mit Ihrer Antwort tun muss. Vielleicht möchten Sie auch How to Answer lesen, um Tipps zum Bereitstellen von Antworten hier zu erhalten.
Wie geschrieben ist es sogar gefährlich, da der zweite mvBefehl nicht alle unproblematischen Dateien aus dem tmpVerzeichnis verschiebt.