Warum fügt OSX zusätzliche '._' hinzu ' wenn ich ein Verzeichnis tare?

Ich würde nur gerne wissen, warum, wenn ich eine Datei/ein Verzeichnis "tar -czf" einfüge, osx ein: ._ für jede Datei hinzufügt? Ich sehe diese, wenn ich unter Linux entpacke. Oder wenn ich mit dem unkomprimierten Projekt in Eclipse arbeite, da es ihnen überhaupt nicht gefällt. Ich verwende 10.7.5.

Antworten (2)

tar von OS X verwendet das AppleDouble -Format, um erweiterte Attribute und ACLs zu speichern. tar und Archive Utility wissen auch, wie man die ._-Dateien zurück in die nativen Formate konvertiert, aber die ._-Dateien bleiben erhalten, wenn das Archiv auf einer anderen Plattform oder auf einem Nicht-HFS-Volume extrahiert wird.

Normalerweise können Sie tar einfach anweisen, die Metadaten zu entfernen, indem Sie COPYFILE_DISABLE auf einen Wert setzen:

$ xattr -l file.jpg
com.apple.quarantine: 0002;50d20c48;Tweetbot;
$ tar -cf 1.tar file.jpg 
$ tar -tf 1.tar 
./._file.jpg
file.jpg
$ COPYFILE_DISABLE=1 tar -cf 2.tar file.jpg 
$ tar -tf 2.tar 
file.jpg

Als erweiterte Attribute gespeicherte Informationen:

  • Ressourcengabeln (seit 10.4)
    • Benutzerdefinierte Symbole, die im Finder festgelegt wurden, und die Bilder von Icon\r-Dateien
    • Metadaten in PSD-Dateien
    • In Scpt-Dateien gespeicherte Skriptobjekte, Fensterstatus des AppleScript-Editors
  • Informationen zu Pseudonymen
  • Quarantänestatus, Download-URLs
  • Spotlight-Kommentare
  • Kodierung von Dateien, die mit TextEdit gespeichert wurden
  • Caret-Position von Dateien, die mit TextMate gespeichert wurden
  • Skim-Notizen

Sie können ACLs anzeigen mit ls -le:

$ ls -led /Applications/
drwxrwxr-x@ 146 root  admin  4964 Jun 17 22:53 /Applications/
 0: group:everyone deny delete
Toller Rat zu COPYFILE_DISABLE, löste meine Probleme mit diesen fiesen ._-Dateien.
github.com/libarchive/libarchive/commit/… macht darauf aufmerksam--disable-copyfile

Diese Dateien waren immer da, aber sie sind im Finder (und den meisten Mac OS-Anwendungen) unsichtbar. Siehe https://superuser.com/questions/212896/

bearbeiten

Das heißt: Diese Dateien enthalten die erweiterten Dateiattribute ... en.wikipedia.org/wiki/Extended_file_attributes ... und sie wurden erstellt, sobald MacOS den Dateien erweiterte Attribute gab. Diese ._*-Dateien wurden also nicht für das tar-Archiv erstellt.

NEIN, sie waren nicht immer da, da ich vorher an Ubuntu damit gearbeitet habe. Ich vermute, dass osx sie hinzufügt, wenn die komprimierte Datei auf dem System explodiert. was ich natürlich nicht wusste, bis ich einen Polizisten zur Ausgangsplattform zurückbrachte. Was ich gerne wissen würde, ist, warum es sie überhaupt hinzufügt
Diese Dateien enthalten die erweiterten Dateiattribute ... en.wikipedia.org/wiki/Extended_file_attributes