Bir Mac OS X sistemi üzerinde çalıştığınızı belirten bir yorum gönderdiniz. Bu, bu ._*
dosyaların amacı için önemli bir ipucudur .
Bu ._*
arşiv girişleri , karşılık gelen dosyayla ( öneksiz olan) ilişkili ek bilgileri içeren AppleDouble veri parçalarıdır ._
. Mac OS X'e özgü copyfile (3) işlev ailesi tarafından oluşturulur. AppleDouble blobları erişim kontrol verilerini (ACL) ve genişletilmiş öznitelikleri (genellikle Finder bayrakları ve “kaynak çatalları” depolar, ancak xattrs her türlü veriyi depolamak için kullanılabilir).
Sistem tarafından sağlanan Mac OS X arşiv araçları ( bsdtar
(ayrıca symlink olarak da adlandırılır tar
) gnutar
, ve pax
) ._*
kendisiyle ilişkili genişletilmiş bilgilere sahip herhangi bir dosya için bir arşiv üyesi oluşturur ; “arşivden çıkar” modunda, bu arşiv üyelerinin de kodunu çözer ve ortaya çıkan genişletilmiş bilgileri ilişkili dosyaya uygularlar. Bu, HFS + dosya sisteminin saklayabileceği tüm bilgileri koruyarak ve daha sonra çıkararak Mac OS X sistemlerinde kullanılmak üzere bir “tam uyum” arşivi oluşturur.
Diğer sistemlerde karşılık gelen arşiv araçları, bu ._*
dosyalara özel işlem yapmayı bilmez , bu nedenle normal dosyalar olarak paketten çıkarılırlar. Bu tür dosyalar diğer sistemlerde oldukça işe yaramaz olduğundan, genellikle “gereksiz dosyalar” olarak görülürler. Buna uygun olarak, Mac OS X olmayan bir sistemle başlayan normal dosyaları içeren bir arşiv oluşturursa ._
, Mac OS X arşivden çıkarma araçları bu dosyaları genişletilmiş bilgi olarak deşifre etmeye çalışır.
Bununla birlikte, sistem tarafından sağlanan Mac OS X arşivleyicilerinin diğer Unixy sistemlerinde olduğu gibi davranmasının belgelenmemiş (?) Bir yolu vardır: COPYFILE_DISABLE ortam değişkeni. Bu değişkenin (herhangi bir değere, hatta boş dizeye) ayarlanması, arşivleyicilerin ._*
arşivlenen dosyalarla ilişkili tüm genişletilmiş bilgileri temsil etmelerini engeller . Varlığı ayrıca arşivcilerin bu tür arşiv üyelerini genişletilmiş bilgi olarak yorumlamaya çalışmasını da engelleyecektir.
COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …
Eğer daha sık çalışmak istemiyorsanız, bu değişkeni kabuğunuzun başlatma dosyasında ayarlayabilirsiniz.
# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Ardından, özelliği yeniden etkinleştirmeniz gerektiğinde (genişletilmiş bilgileri korumak / geri yüklemek için), bağımsız komutlar için değişkenin “ayarını kaldırabilirsiniz”:
(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)
Mac OS X 10.4'teki arşivleyiciler de farklı bir ortam değişkeni kullanıyor olsalar da benzer bir şey yapıyorlar: COPY_EXTENDED_ATTRIBUTES_DISABLE