Możliwa duplikat:
Dlaczego w moim archiwum tar w systemie OS X otrzymuję pliki takie jak ._foo?
Tworzę skrypty autoconf na komputerze Mac. Po uruchomieniu tar umieszcza wszystkie te nazwy ._ foobar w archiwum:
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpr
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpr
Teraz system plików HFS firmy Apple umieszcza właściwości pliku w nazwach ._ foobar , aby można je było przywrócić na innym systemie Mac. Ale ja ich nie chcę --- są dla mnie tylko śmieciami. Czy jest jakiś sposób, aby je stłumić?
macos
filesystems
tar
metadata
vy32
źródło
źródło
._*
plików z archiwów (np..__init__.py
), Które używa tego samego rozwiązania.Odpowiedzi:
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
ifalse
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.
Jeśli często napotykasz problem, możesz chcieć ustawić i wyeksportować tę zmienną do jednego z plików inicjujących powłokę.
W razie potrzeby możesz rozbroić zmienną dla poszczególnych poleceń.
W tym systemie Mac OS X 10.6 wszystkie poniższe polecenia wydają się wiedzieć o COPYFILE_DISABLE:
/usr/bin/tar
(symboliczny link dobsdtar
)/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.
źródło
Nie był ekspertem, ale trochę google znalazł: http://www.ofzenandcomputing.com/zanswers/3422
i to: http://hintsforums.macworld.com/archive/index.php/t-28703.html
Drugie polecenie wygląda na to, że można je włączyć do skryptu ... możesz nie być w stanie zapobiec tworzeniu plików wideł zasobów, ale możesz je później automatycznie usunąć.
edycja: Powinienem wspomnieć, że może to mieć złe wyniki, używaj na własne ryzyko.
źródło
tar
wyjątkiem BSDlibarchive
(dotyczy to Mac OS X), ale może nie być wiarygodny; instalowanie GNU tar jest często dobrym pomysłem. (Jest to jednak bolesne. Myślę, że musisz wymienić je wszystkie, a następnie przekazać te nazwy w wierszu poleceń.) Również widelce zasobów technicznie znajdują się na dysku, ale na HFS + są przechowywane w rozszerzonych atrybutach; te._
pliki są sposobem OS X przechowywania widelce zasobów w miejscach, które nie obsługują atrybutów rozszerzonych.Możesz spróbować skompilować własny
tar
lub zainstalować go z Macports lub Fink, jeśli jest dostępny (Homebrew go nie ma). Przy odrobinie szczęścia powinno być ignorowane metadane OS X i pomijać tworzenie tych plików.źródło