Sie haben in einem Kommentar geschrieben, dass Sie auf einem Mac OS X-System arbeiten. Dies ist ein wichtiger Hinweis auf den Zweck dieser ._*
Dateien.
Diese ._*
Archiveinträge sind Teile von AppleDouble- Daten, die die zusätzlichen Informationen enthalten, die der entsprechenden Datei (der Datei ohne ._
Präfix) zugeordnet sind. Sie werden von der Mac OS X-spezifischen Funktionsfamilie copyfile (3) generiert . Die AppleDouble-Blobs speichern Zugriffssteuerungsdaten (Access Control Data, ACLs) und erweiterte Attribute ( normalerweise Finder- Flags und "Resource Forks"). Xattrs können jedoch zum Speichern beliebiger Datentypen verwendet werden.
Das System gelieferte Mac OS X - Archiv Tools ( bsdtar
(auch symbolische Links als tar
), gnutar
und pax
) wird ein generieren ._*
Archiv Mitglied für jede Datei , die alle erweiterten Information zugeordnet ist; Im Modus "Nicht archivieren" dekodieren sie auch diese Archivmitglieder und wenden die resultierenden erweiterten Informationen auf die zugehörige Datei an. Auf diese Weise wird ein Archiv mit vollständiger Wiedergabetreue für die Verwendung auf Mac OS X-Systemen erstellt, indem alle Informationen, die das HFS + -Dateisystem speichern kann, beibehalten und später extrahiert werden.
Die entsprechenden Archivierungstools auf anderen Systemen können diese ._*
Dateien nicht speziell behandeln und werden daher als normale Dateien entpackt. Da solche Dateien auf anderen Systemen ziemlich nutzlos sind, werden sie oft als "Junk-Dateien" angesehen. Wenn ein Nicht-Mac OS X-System ein Archiv generiert, das normale Dateien enthält, die mit beginnen ._
, versuchen die Mac OS X-Tools zum Aufheben der Archivierung, diese Dateien als erweiterte Informationen zu dekodieren.
Es gibt jedoch eine undokumentierte (?) Methode, mit der sich die vom System bereitgestellten Mac OS X-Archivierungsprogramme wie auf anderen Unixy-Systemen verhalten: die Umgebungsvariable COPYFILE_DISABLE. Durch Festlegen dieser Variablen (auf einen beliebigen Wert, auch auf eine leere Zeichenfolge) wird verhindert, dass die Archivierer ._*
Archivmitglieder generieren , um erweiterte Informationen darzustellen, die den archivierten Dateien zugeordnet sind. Seine Anwesenheit wird auch die Archivierer daran hindern, solche Archivmitglieder als erweiterte Informationen zu interpretieren.
COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …
Sie können diese Variable in der Initialisierungsdatei Ihrer Shell festlegen, wenn Sie häufiger auf diese Weise arbeiten möchten.
# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Wenn Sie die Funktion dann erneut aktivieren müssen (um die erweiterten Informationen beizubehalten / wiederherzustellen), können Sie die Variable für einzelne Befehle "deaktivieren":
(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)
Die Archivierer unter Mac OS X 10.4 führen ähnliche Aktionen aus, verwenden jedoch eine andere Umgebungsvariable: COPY_EXTENDED_ATTRIBUTES_DISABLE