Ich habe einen Musikordner in meinem externen Laufwerk gelöscht und ein Verzeichnis gefunden, das ich nicht löschen kann, egal was ich versuche.
Wenn ich es über die GUI in den Papierkorb lege
Der Vorgang kann nicht abgeschlossen werden, da das Element "Ordner" verwendet wird.
Wenn ich rm -rf
es über das Terminal entferne
$ rm -rf folder/
rm: folder/: Directory not empty
Wenn ich ls -la
seinen Inhalt überprüfe
$ ls -la
total 512
drwxrwxrwx 1 user staff 131072 Jan 3 2017 .
drwxrwxrwx 1 user staff 131072 Jan 3 2017 ..
Wenn ich rm -i *
innerhalb des Ordners verwende
$ rm -i *
rm: 03 - Ēlusion.mp3: No such file or directory
Wenn ich verwende sudo lsof +D folder/
, um zu überprüfen, ob Dateien geöffnet sind
Beim Beenden des Programms wird nichts zurückgegeben.
Wenn ich das Festplatten-Dienstprogramm verwende, um Festplatte und Volume zu reparieren (Erste Hilfe)
Der Gesundheitscheck wurde bestanden, sodass keine Reparatur eingeleitet wurde.
Wenn ich macOS neu starte
Das Problem besteht weiterhin.
Zusätzliche Information:
Ich kann den Ordner innerhalb des Laufwerks verschieben, jedoch nicht auf ein anderes Laufwerk.
Ich kann den Ordner umbenennen.
ls -i *.mp3
gibt zurückls: 03 - Ēlusion.mp3: No such file or directory
, wierm -i *.mp3
.Die Datei wird nicht im Finder angezeigt, das ist ein verwirrender Teil, egal welches Problem bei der Anzeige von Dateinamen im Terminal auftreten könnte (ich habe es immer so eingestellt, dass es verwendet wird
Unicode - UTF-8
), ich denke, es gibt mehr Kraft im Spiel.
Nein, als Antwort auf Fragen ls -ib
gibt es nichts zurück.
$ 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 ..
Anscheinend ist etwas drin, ls -la
konnte es aber nicht sehen, während rm -i
der Dateiname komisch ist?
get info
Über das GUI-Kontextmenü wurde bestätigt, dass sich 1 Element im Ordner befindet, jedoch mit null Byte, und es wird sicherlich nicht im Finder angezeigt.
Ich bin mir nicht sicher, was ich zu diesem Zeitpunkt tun soll. Hilfe sehr geschätzt!
(Verwenden von 10.13.4 + ExFAT auf einem externen Laufwerk)
quelle
ls -b
die Datei an? In diesemls -bi
Fall können Sie den Inode abrufen und der folgenden Antwort folgen oder alternativ einfach den Dateinamen in die-b
Ausgabe kopieren .ls -bi *.mp3
Zeigen Sie das gleiche Ergebnis wie in OP.Antworten:
Das Problem scheint durch eine Datei mit dem Namen 03 - Ēlusion.mp3 verursacht zu werden, die sich im Verzeichnis mit dem Namen Ordner befindet .
Da Terminal.app keine diakritischen Zeichen in Dateinamen rendern kann - nun ja, aber das geht über den Rahmen der einfachsten Lösung für Sie hinaus -, verbirgt es seinen Fehler, indem es den Dateinamen ausblendet (etwas, das ich bisher nicht gekannt habe) ; vielleicht die Änderungen von High Sierra an /.file, /.volfs und 64-Bit-Inodes? Warten Sie - egal; Ihre Bearbeitung Ihrer Frage sagt mir, dass ich Sie missverstanden habe.) Wie auch immer, die Existenz der Datei ist bekannt, zusammen mit der Ironie Behauptung des Finders, dass es nicht existiert. Offensichtlich ist es so. So ändern Sie das:
Bestimmen Sie zunächst die Inode-Nummer der Datei. Wechseln Sie in Terminal.app
cd
in das Verzeichnis "Ordner" und geben Sie den folgenden Befehl ein:ls -i *.mp3
Kopieren Sie die Zahlenfolge des Inodes in der linken Spalte der Antwort
12345678 03 - E ̄lusion.mp3
--und fügen Sie es in diesen Befehl ein, wodurch es in etwas umbenannt wird, das das Terminal korrekt rendern kann:
find . -inum 12345678 -exec mv {} deletemenow \;
- Geben Sie die Datei "deletemenow" im Ordner "folder", über die Sie auf die für Sie am besten geeignete Weise verfügen können.
quelle
$ ls -i *.mp3
, es kehrt zurückls: 03 - Ēlusion.mp3: No such file or directory
.ls -i
innerhalb des Verzeichnisses ausgeführt werden, um zu verhindern, dass die Shell-Platzhaltererweiterung stört?Ich habe lange gebraucht, um zu dieser Zusammenfassung zu kommen, aber ich denke, es ist die endgültige Antwort.
Die Ursache meines Problems ist eine bekannte :
In der Vergangenheit (nicht so alt, vor 10.11) erzwingt OS X + HFS + das NFD-Formular für alle Dateinamen , und Sie erhalten das NFD-Ergebnis nur aus Befehlen und Systemaufrufen.
Dann beginnen sich die Dinge zu ändern. In 10.11 werden einige Systemaufrufergebnisse auf NFC normalisiert , wodurch es mit Windows und Linux in Einklang gebracht wird, jedoch auf Kosten einiger Programme, die NFD unter OS X erwarten.
Seit der Einführung von macOS 10.13 + AFPS ändert sich das Verhalten jedoch erneut: Apple beschließt , bei Anzeige- und Systemaufrufen auf NFD zu normalisieren , die ursprünglichen Dateinamen jedoch unverändert zu lassen (daher werden sowohl NFC als auch NFD unterstützt, wenn Sie dies auswählen Wenn Sie den Dateinamen im Finder oder das Kopierergebnis
ls
im Terminal eingeben, erhalten Sie das NFD-Formular.Dies ist alles großartig, bis Sie eine Datei mit NFD-Dateinamen mit exFAT in ein externes Laufwerk einfügen (da dies das einzige Cross-MacOS / Windows-Format mit Unterstützung für 4 GB + Dateigröße ist): MacOS 10.13 glaubt also, dass Ihre Datei im NFC-Format sein muss es ist abgehört.
In der Tat, hier ist ein kurzer Test, ich habe einen Ordner in Windows auf meinem exFAT-Laufwerk mit 3 Dateien:
test.mp3
Ēlusion.mp3
(Ē
in NFC)03 - Ēlusion
(Ē
in NFD)( Den genauen Unicode können Sie hier kopieren )
Wenn ich sie auf meinem MacOS einbinde, sehe ich Folgendes:
und
ls -laib
Ergebnis:Wie Sie sehen können, ist die NFC-Datei vorhanden, aber die NFD-Datei fehlt.
Selbst wenn Sie sich des NFC / NFD-Problems unter OS X bewusst sind , können Sie nicht erwarten, dass das externe exFAT-Laufwerk dieses Problem in umgekehrter Weise angeht (NFC ist in Ordnung, aber NFD ist in Flammen).
Aber was könnte dazu geführt haben, dass meine Musikdatei überhaupt den NFD-Dateinamen verwendet hat:
Ich hätte die Datei über ein Netzwerklaufwerk oder TeamViewer kopieren können, und es wäre in Ordnung, aber exFAT löst diesen Fehler unter macOS aus.
Lektionen:
quelle
Error 36
Weitere Informationen zum Trennen von Dateizuordnungen auf Nicht-HFS-Systemen finden Sie in meinem früheren Kommentar zu und führen Sie eine Websuche nach "Dateien hin und her verschieben Windows Mac-Fehler 36" durch. Dies ist (ein weiteres) bekanntes Problem bei der Benennung von MacOS / OS X-Dateien seit System 10.6. Zwischen der Unicode-Normalisierung und der Attributtrennung dot_underscore ist ein doppelter Fehler aufgetreten. Ich bezweifle, dass der Befehl dot_clean eine Chance hatte.