Possível duplicado:
Por que obtenho arquivos como ._foo no meu tarball no OS X?
Eu crio scripts de autoconf em um Mac. Quando o tar é executado, coloca todos esses nomes ._ foobar no arquivo:
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
Agora, o que está acontecendo é que o sistema de arquivos HFS da Apple está colocando as propriedades do arquivo nos nomes ._ foobar, para que possam ser restauradas em outro sistema Mac. Mas eu não os quero - eles são apenas lixo para mim. Existe alguma maneira de suprimi-los?
macos
filesystems
tar
metadata
vy32
fonte
fonte
._*
arquivos de arquivos (por exemplo.__init__.py
) que usa a mesma solução.Respostas:
Por uma resposta a outra pergunta , você pode definir a variável de ambiente não documentada (?) COPYFILE_DISABLE para impedir que vários programas fornecidos pelo sistema (incluindo tar ) atribuam um significado especial aos
._*
membros do arquivo. Em particular, impedirá que eles:armazenar dados de atributos estendidos (incluindo bifurcações de recursos) nos
._*
membros do arquivo(por exemplo, não "polui" os arquivos criados no Mac OS X, mas destinados ao uso em outros sistemas), e
tentar extrair atributos ou recursos estendidos de membros do arquivo nomeados como
._*
(isto é, não interpretar mal
._*
membros do arquivo em arquivos de outros sistemas).O valor que você usa para a variável de ambiente não é importante (pode até ser a sequência vazia). Valores como
0
efalse
não reativarão o recurso. A única coisa que importa é se a variável está definida (é necessário "desmarcá-la" para reativar o recurso).Você pode usar essa variável em comandos individuais, aproveitando a capacidade dos shells no estilo Bourne ( sh , ksh , bash , zsh , etc.) de prefixar comandos com variáveis de ambiente extras.
Se você se deparar com o problema com mais frequência, convém definir e exportar essa variável em um dos arquivos de inicialização do seu shell.
Quando necessário, você pode desabilitar a variável para comandos individuais.
Neste sistema Mac OS X 10.6, todos os seguintes comandos parecem saber sobre COPYFILE_DISABLE:
/usr/bin/tar
(um link simbólico parabsdtar
)/usr/bin/bsdtar
/usr/bin/gnutar
/bin/pax
COPYFILE_DISABLE originou no Mac OS X 10.5. Se você precisar oferecer suporte ao 10.4, ele possui COPY_EXTENDED_ATTRIBUTES_DISABLE que funciona da mesma maneira.
fonte
Não é um especialista, mas pesquisou um pouco no Google: http://www.ofzenandcomputing.com/zanswers/3422
e isso: http://hintsforums.macworld.com/archive/index.php/t-28703.html
O segundo comando parece que poderia ser incorporado a um script ... talvez você não consiga impedir a criação de arquivos de bifurcação de recursos, mas poderá excluí-los automaticamente posteriormente.
editar: eu deveria ter mencionado isso pode ter resultados ruins, use por sua conta e risco.
fonte
tar
exceto olibarchive
baseado no BSD (isso inclui o Mac OS X), mas pode não ser confiável; instalar o GNU tar geralmente é uma boa idéia. (No entanto, é doloroso. Acho que você precisa listar todos eles e passar esses nomes na linha de comando.) Além disso, os garfos de recursos tecnicamente estão no disco, mas no HFS + eles são armazenados em atributos estendidos; os._
arquivos são a maneira do OS X de armazenar garfos de recursos em locais que não suportam atributos estendidos.Você pode tentar compilar por conta própria
tar
ou instalá-lo no Macports ou no Fink, se disponível (o Homebrew não o possui). Com alguma "sorte", ele deve ignorar os metadados do OS X e pular a criação desses arquivos.fonte