por que o OSX adiciona '._ <nome do arquivo>' extra quando tar um diretório?

14

Eu gostaria de saber por que, se eu "tar -czf" um arquivo / diretório, o osx adiciona: ._ para cada arquivo? Eu os vejo quando desarmar no linux. Ou quando eu trabalho com o projeto não compactado no eclipse, pois ele não gosta deles. Eu uso 10.7.5.

Dark Star1
fonte

Respostas:

15

O tar do OS X usa o formato AppleDouble para armazenar atributos estendidos e ACLs. O tar e o Archive Utility também sabem como converter os arquivos ._ de volta aos formatos nativos, mas os arquivos ._ serão mantidos se o archive for extraído em outra plataforma ou em um volume não HFS.

Você geralmente pode dizer ao tar para remover os metadados configurando COPYFILE_DISABLE com algum valor:

$ xattr -l file.jpg
com.apple.quarantine: 0002;50d20c48;Tweetbot;
$ tar -cf 1.tar file.jpg 
$ tar -tf 1.tar 
./._file.jpg
file.jpg
$ COPYFILE_DISABLE=1 tar -cf 2.tar file.jpg 
$ tar -tf 2.tar 
file.jpg

Informações armazenadas como atributos estendidos:

  • Garfos de recursos (desde 10.4)
    • Ícones personalizados definidos no Finder e as imagens dos arquivos Icon \ r
    • Metadados em arquivos PSD
    • Objetos de script armazenados em arquivos scpt, estado da janela do AppleScript Editor
  • Informações sobre aliases
  • Status da quarentena, URLs de download
  • Comentários em destaque
  • Codificação de arquivos salvos com o TextEdit
  • Posição de cursor de arquivos salvos com o TextMate
  • Notas desnatadas

Você pode ver ACLs com ls -le:

$ ls -led /Applications/
drwxrwxr-x@ 146 root  admin  4964 Jun 17 22:53 /Applications/
 0: group:everyone deny delete
Lri
fonte
Um ótimo conselho sobre COPYFILE_DISABLE resolveu meus problemas com esses arquivos ._ desagradáveis.
StasM
github.com/libarchive/libarchive/commit/… chama a atenção para--disable-copyfile
Graham Perrin
-2

Esses arquivos sempre estavam lá, mas são invisíveis no Finder (e na maioria dos aplicativos Mac OS). Consulte /superuser/212896/

editar

Ou seja: esses arquivos contêm os atributos de arquivo estendidos ... en.wikipedia.org/wiki/Extended_file_attributes ... e foram criados assim que o MacOS atribuiu atributos estendidos aos arquivos. Portanto, esses arquivos ._ * não foram criados para o arquivo tar.

GEdgar
fonte
2
NÃO, eles nem sempre estavam lá, pois era algo com o qual eu estava trabalhando anteriormente no ubuntu. Eu acho que o osx os adiciona ao explodir o arquivo compactado no sistema. o que, é claro, eu não sabia até levar um policial de volta à plataforma de origem. O que eu gostaria de saber é wh ele adiciona-los em primeiro lugar
Escuro Star1
1
Esses arquivos contêm os atributos de arquivo estendidos ... en.wikipedia.org/wiki/Extended_file_attributes
GEdgar