Za odpowiedź na inne pytanie , można ustawić nieudokumentowanych (?) Zmienną środowiskową COPYFILE_DISABLE aby zapobiec kilka programów systemowych dostarczone (w tym smoły ) od wydawania specjalnego znaczenia do ._*
archiwalnych członków. W szczególności zapobiegnie to:
przechowywanie rozszerzonych danych atrybutów (w tym rozwidleń zasobów) w ._*
elementach archiwów
(tj. nie „zanieczyszcza” ”archiwów utworzonych w Mac OS X, ale przeznaczonych do użycia w innych systemach), oraz
próba wyodrębnienia rozszerzonych atrybutów lub zasobów z elementów archiwalnych o nazwach podobnych ._*
(tj. nie należy źle interpretować ._*
elementów archiwalnych w archiwach z innych systemów).
Wartość używana dla zmiennej środowiskowej nie jest ważna (może to być nawet pusty ciąg). Wartości takie jak 0
i false
nie włączają ponownie tej funkcji. Liczy się tylko to, czy zmienna jest ustawiona (musisz ją „rozbroić”, aby włączyć tę funkcję).
Tej zmiennej można użyć do poszczególnych poleceń, korzystając z możliwości powłok typu Bourne'a ( sh , ksh , bash , zsh itp.), Aby poprzedzać polecenia dodatkowymi zmiennymi środowiskowymi.
COPYFILE_DISABLE=1 tar cf new.tar …
Jeśli często napotykasz problem, możesz chcieć ustawić i wyeksportować tę zmienną do jednego z plików inicjujących powłokę.
# turn off special handling of ._* files in tar, etc.
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
W razie potrzeby możesz rozbroić zmienną dla poszczególnych poleceń.
(unset COPYFILE_DISABLE; tar cf somefile.tar …)
W tym systemie Mac OS X 10.6 wszystkie poniższe polecenia wydają się wiedzieć o COPYFILE_DISABLE:
/usr/bin/tar
(symboliczny link do bsdtar
)
/usr/bin/bsdtar
/usr/bin/gnutar
/bin/pax
COPYFILE_DISABLE pochodzi z Mac OS X 10.5. Jeśli potrzebujesz obsługiwać 10.4, ma COPY_EXTENDED_ATTRIBUTES_DISABLE, który działa w ten sam sposób.