Você postou em um comentário que está trabalhando em um sistema Mac OS X. Essa é uma pista importante para o objetivo desses ._*
arquivos.
Essas ._*
entradas de arquivamento são blocos de dados AppleDouble que contêm as informações extras associadas ao arquivo correspondente (aquele sem o ._
prefixo). Eles são gerados pela família de funções copyfile (3) específica do Mac OS X. Os blobs AppleDouble armazenam dados de controle de acesso (ACLs) e atributos estendidos (geralmente, sinalizadores do Finder e "garfos de recursos", mas o xattrs pode ser usado para armazenar qualquer tipo de dados).
As ferramentas de arquivamento do Mac OS X fornecidas pelo sistema ( bsdtar
(também vinculadas como tar
), gnutar
e pax
) gerarão um ._*
membro de arquivamento para qualquer arquivo que possua informações estendidas associadas; no modo "desarquivador", eles também decodificarão esses membros do arquivo e aplicarão as informações estendidas resultantes ao arquivo associado. Isso cria um arquivo de "fidelidade total" para uso em sistemas Mac OS X preservando e depois extraindo todas as informações que o sistema de arquivos HFS + pode armazenar.
As ferramentas de arquivamento correspondentes em outros sistemas não sabem dar tratamento especial a esses ._*
arquivos; portanto, elas são descompactadas como arquivos normais. Como esses arquivos são bastante inúteis em outros sistemas, eles geralmente são vistos como "arquivos indesejados". Da mesma forma, se um sistema não Mac OS X gerar um arquivo que inclua arquivos normais que começam com ._
, as ferramentas de desarquivamento do Mac OS X tentarão decodificar esses arquivos como informações estendidas.
No entanto, existe uma maneira não documentada (?) De fazer com que os arquivadores do Mac OS X fornecidos pelo sistema se comportem como em outros sistemas Unixy: a variável de ambiente COPYFILE_DISABLE. A configuração dessa variável (com qualquer valor, mesmo a cadeia vazia) impedirá que os arquivadores gerem ._*
membros do arquivo para representar qualquer informação estendida associada aos arquivos arquivados. Sua presença também impedirá que os arquivadores tentem interpretar esses membros do arquivo como informações estendidas.
COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …
Você pode definir essa variável no arquivo de inicialização do seu shell se desejar trabalhar dessa maneira com mais frequência.
# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Então, quando precisar reativar o recurso (para preservar / restaurar as informações estendidas), você pode "desmarcar" a variável para comandos individuais:
(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)
Os arquivadores no Mac OS X 10.4 também fazem algo semelhante, embora usem uma variável de ambiente diferente: COPY_EXTENDED_ATTRIBUTES_DISABLE