Das @
bedeutet, dass die Datei "erweiterte Attribute" (zusätzliche Metadaten, abgekürzt "xattrs") im Dateisystem angehängt ist. Unter ls -l@
Mac OS X können Sie die Liste der an die Dateien angehängten Xattrs anzeigen.
Classic Mac OS hatte das Konzept von "Finder Info", einem kleinen festen (nicht erweiterbaren) Satz von Metadaten, den alle Dateien auf einem HFS-Volume hatten. Dazu gehörten die "Typ- und Erstellercodes" und die "Finder-Flags", darunter das gesperrte Bit, das "sichtbare" (verborgene) Bit und mehrere andere. Mac OS X hat im Grunde die alten Finder-Metadaten verworfen. In den Fällen, in denen sie noch benötigt werden, werden sie jetzt als xattr an den Datensatz der Datei im Dateisystem angehängt. Bei den gesperrten Dateien, die Sie sehen, ist dieses Finder info xattr fast sicher angebracht, sodass der Status des alten gesperrten Finder-Bits aufgezeichnet werden kann.
Mein Snow Leopard-System hat einen /usr/bin/xattr
Befehl, der anscheinend keine Manpage hat, er hat jedoch eine Verwendungsanweisung, wenn Sie ihn mit aufrufen -h
. Beachten Sie, dass xattr -l filename
dies nützlich sein kann, um einen hexadezimalen / ASCII-Speicherauszug der Werte der an eine Datei angehängten xattrs zu erhalten.
Zu den in Mac OS X integrierten Befehlen zum Anzeigen und Bearbeiten des alten Finder Info xattr vom Terminal gehören GetFileInfo(1)
und SetFile(1)
.
Update:
Ich habe keine gute Erklärung dafür, warum diese Dateien gesperrt werden. Meine Vermutung wäre jedoch, dass die HFS-Unterstützungssoftware, die Sie unter Linux ausführen, entweder den Zweck und den Status des alten Finder-Sperrbits und die entsprechende Einstellung falsch versteht Wenn es nicht der Fall sein sollte, oder es verwendet das Sperrbit absichtlich als Mechanismus, um ein semantisches Konzept eines Linux-Dateisystems auf HFS abzubilden.
Das Finder-Sperrbit war für Benutzer gedacht, um ihre eigenen Dateien manuell zu sperren, sodass sie nicht versehentlich geändert oder gelöscht wurden. Sie waren nicht als Mechanismus für das Sperren von Dateien auf Prozessebene gedacht, um zu vermeiden, dass mehrere Prozesse in dieselbe Datei schreiben zur selben Zeit. Das heißt, es sollte kein Ersatz für fcntl(2)
oder sein flock(2)
. Zu der Zeit, als das Finder-Lock-Bit entworfen wurde, war der Mac kein Multiprocessing-System.
Update 2: Es könnte auch sein, dass Aquamacs das alte Finder-Sperrbit missbraucht, um die Dateisperrenwünsche von emacs auszuführen.