Ghost-Dateien in MacOSX – purer Informatikporno!

Ausgegraute Dateien in MacOSX nicht nutzbar? Hab ich! Plötzlich befinden sich in ein paar Ordner ausgegraute Dateien, die ich weder kopieren, noch nutzen kann. WTF!

Tolle Fehlermeldungen wie:

Genau mein Ding! Ich dachte ja immer, Apple sei total Userfriendly, aber das Problem hat es wirklich in sich. Auf Anhieb kam ich garnicht weiter. Filesystem reparieren, Rechtsklick, Eigenschaften, etc. pp. Also ab auf die Konsole und mal luggiluggi machen.

[bash]bash-3.2# ls -la | grep @
drwxr-xr-x@ 28 fkinader staff 952 25 Jan 20:20 .
-rw-r–r–@ 1 fkinader staff 32772 17 Jan 23:30 .DS_Store
-rw-r–r–@ 1 fkinader staff 10495 6 Dez 2015 fkinader_elster_2048.pfx
-rw-r–r–@ 1 fkinader staff 36716 19 Feb 2016 passes.kdb[/bash]

Igitt… was ist dass denn für ein @? Mal ein bisschen man-pages lesen (Google ist was für Weicheier und Möchtegern-Nerds!)

[bash]bash-3.2# man 1 ls
-@ Display extended attribute keys and sizes in long (-l) output.
If the file or directory has extended attributes, the permissions field printed by the -l option is followed by a ‚@‘ character. Otherwise, if the file or directory has extended security
information (such as an access control list), the permissions field printed by the -l option is followed by a ‚+‘ character.[/bash]

*Sabber*, extended attributs?! Ich befürchte, das wird hier noch ein richtiger Informatiker Porno. Weiter gehts.

[bash]bash-3.2# ls -la@ passes.kdb
-rw-r–r–@ 1 fkinader staff 36716 19 Feb 2016 passes.kdb
com.apple.FinderInfo 32[/bash]

Hmm, okay – der Finder hat damit wohl etwas zu tun… Damit hätten wir wohl den Hauptakteur in diesem Spiel gefunden.

[bash]bash-3.2# xattr -l passes.kdb
com.apple.FinderInfo:
00000000 62 72 6F 6B 4D 41 43 53 00 00 00 00 00 00 00 00 |brokMACS……..|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |…………….|
00000020[/bash]

„brokMACS“ – ich ahne, dass Vorspiel ist gleich vorbei…

[bash]bash-3.2# GetFileInfo passes.kdb
file: „/Users/fkinader/CloudStation/passes.kdb“
type: „brok“
creator: „MACS“
attributes: avbstclinmedz
created: 02/19/2016 09:59:19
modified: 02/19/2016 09:59:19[/bash]

*schmatz* Okay, type und creator nennt sich dass dann, Vorspiel offiziell beendet, legen mir also mit dem Hauptakt los.

Nach ein bisschen OSX Developer Guides lesen habe ich das wie folgt verstanden: Wenn Finder eine Datei kopiert, bekommt diese Datei einen Type und einen Creator als erweitertes Attribut, damit der Finder es als „in Nutzung“ bzw. „in use“ markiert und erkennt. Wenn hier aber etwas schief geht, werden die Attribute nicht gelöscht, sondern bleiben. Da hilft auch kein Neustart (ein MAC wird sowieso niemals neu gestartet!).

Pff, dann löschen wir halt einfach das Attribut mit folgendem Befehl:

[bash]xattr -d com.apple.FinderInfo passes.kdb[/bash]

Und wer mehr Dateikandidaten mit extended attributes hat, hab ich jetzt als Grande-Finale einen kleinen Bash-Orgasmus 😉

[bash]mdfind -onlyin /Users/fkinader/CloudStation -0 „kMDItemFSTypeCode==brok && kMDItemFSCreatorCode==MACS“ | xargs -0 -n1 xattr -d com.apple.FinderInfo[/bash]

Der Befehl tut nichts anderes, als die Spotlight Suche zu benutzen, die Dateien im Ordner /Users/fkinader/CloudStation mit type „brok“ und Creator „MACS“ zu suchen, und die extended attributes zu löschen.

Und da sag noch einer, wir Informatiker hätten keinen Geschmack bei Pornos!

3 Gedanken zu „Ghost-Dateien in MacOSX – purer Informatikporno!

  • Daniel
    5. Januar 2019 um 18:44 Uhr

    Danke, das hat mir soeben den A…. gerettet!
    Das Bulk-Entfernen des Attributs habe ich mit diesem verkürztem find erledigt:
    find . -exec xattr -d com.apple.FinderInfo {} \;

  • Urs Graber
    24. Dezember 2020 um 13:16 Uhr

    Hallo Franz
    First of all: Kompliment zu diesem Artikel. Top-Inhalt sehr schön in Worte gepackt 🙂
    Der Befehl, mit welchem ich bei einer einzelnen Datei das Attribut löschen kann funktioniert ohne Probleme.
    Leider funktioniert bei mir aber das grande Finale nicht.
    Natürlich habe ich den Pfad auf meine Verhältnisse angepasst /volumes/dateien918plus/usw. aber da passiert nichts ausser einer Zeilenschaltung.
    Diesen Befehl habe ich quasi im betroffenen Verzeichnis „ausgelöst“. Lies, ich navigierte zum entsprechenden Verzeichnis und habe die Codezeile von dir ausgeführt.
    Danach ging ich in das Grundverzeichnis, und versuchte es noch einmal.
    Leider ohne Erfolg.
    Hast du mir einen Tipp?
    Herzlichen Dank und beste Grüsse
    Urs

    • Franz Kinader
      5. Februar 2021 um 12:12 Uhr

      Hi Urs,

      ohne das Bash zeug mal probieren:

      mdfind -onlyin /Users/fkinader/CloudStation -0 „kMDItemFSTypeCode==brok && kMDItemFSCreatorCode==MACS“ | xargs -0 -n1 xattr -d com.apple.FinderInfo

      oder du versuchst den kürzeren weg

      find . -exec xattr -d com.apple.FinderInfo {} \;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * gekennzeichnet.

*
*