Por que os arquivos ._ de sublinhado de ponto são criados e como evitá-los?

156

Estou usando diferentes sistemas operacionais em máquinas diferentes em locais diferentes. Estou usando um disco flash USB para manter meus arquivos (códigos-fonte etc.).

Eu sou novo no Mac OS X e agora percebo que existem muitos arquivos criados com um ._prefixo de sublinhado de ponto .

Questões

Por que os ._arquivos são criados?

Qual é o seu propósito?

Como posso evitá-los?

nimcap
fonte
2
Também não gosto deles, mas aprendi a conviver pacificamente com eles.
21811 Boehj
1
Se a unidade flash estiver formatada no formato HFS +, isso deve suprimir a criação de ._arquivos, mas não sei quais opções existem em outros sistemas operacionais não especificados para ler volumes HFS +.
Daniel
Não é o ideal, mas ls --ignore="._*"como um alias ou atalho de teclas percorre um longo caminho.
Sridhar Sarnobat

Respostas:

107

Você não pode evitá-los (mas veja a resposta dot_clean de Saeid Zebardast - eles podem ser removidos de um diretório, se é isso que você precisa). Eles são criados para armazenar informações de arquivos que, de outra forma, seriam atribuídas a um atributo estendido nos volumes HFS + (nativo da Apple) ou Unix / UFS; no Mac OS anterior, essa seria a bifurcação de recursos. As operações de arquivos do Finder as criarão automaticamente para armazenar as informações do ícone, e o Time Machine armazena algumas informações nelas. Se você copiar um arquivo com backup via TM, essas informações também serão copiadas.

(Isso não é novidade, eu tenho notado que o XP e mais tarde deixar vários troços ao redor, bem como, embora não muito como muitos.)

geekosaur
fonte
48
Concordo, "bosta" é uma descrição precisa :)
Drahcir
2
Percebi que meu Mac está deixando turds no meu servidor linux samba quando uso etiquetas coloridas (usando o Path Finder 7). Há um arquivo ._ <coloreditem> para cada item colorido.
precisa
5
Temos a mesma situação em nosso servidor de arquivos linux samba no trabalho. Como não precisamos de metadados de cores para arquivos, usamos as opções veto files = /._*/e delete veto filesem nossa smb.confpara impedir a criação desses arquivos. Em vez disso, deixamos os .DS_STOREarquivos como estão, pois são úteis para definir a classificação dos arquivos, e há apenas um deles para cada dir.
gerlos
5
Pelo menos no Windows, você pode desativar isso!
totymedli
7
Votado para o uso de "bosta" para descrever isso.
George P
58

Você pode usar o comando dot_clean para remover ou mesclar os arquivos ._:

dot_clean PATH_OF_FOLDER_OR_DRIVE

Se você mover arquivos para o linux ou tiver Git Bashno seu PC e tiver acesso ao findcomando, também poderá fazer o seguinte:

find . -type f -name '._*' -delete

E eles se foram!

Saeid Zebardast
fonte
3
As outras respostas não respondem realmente a "Como posso evitá-las?" parte. Isso faz. Obrigado!
Andrew Threadgill
8
De man dot_clean: For each dir, dot_clean recursively merges all ._* files with their corresponding native files according to the rules specified with the given arguments. By default, if there is an attribute on the native file that is also present in the ._ file, the most recent attribute will be used.Este comando não apenas remove certos arquivos de ponto, mas também substitui os atributos anteriores / nativos de cada pasta. Use com cuidado.
William Isted
26

Objetivos dos arquivos .DS_Store e ._

http://diigo.com/0qiwp para uma visualização anotada de http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html, em que Matt Deatherage ( ex-engenheiro da Apple ) oferece explicações. Também notificar »Sobre as origens de .DS_Store  (2006-10-01).

Como vi perda de dados do usuário (conteúdo do documento) em que as ._contrapartes são impedidas ou perdidas, concordo que é:

  • não é aceitável que as coisas "desapareçam no éter".

Objetivos dos arquivos ._

Além dos objetivos descritos na resposta aceita pelo geekosaur , aqui estão alguns exemplos de como a Apple e aplicativos de terceiros usam ou exigem ._ em algumas situações…


Arquivo comercial durante uma cópia pelo Finder

Veja minha resposta a uma pergunta no Stack Overflow.


Uso de códigos obsoletos no NeoOffice

O código do tipo HFS NO%Fsem um código de criador é:

  • usado consideravelmente, somente onde apropriado.

Exemplo 1 do NeoOffice

O Patch 5 do NeoOffice 3.2.1 salva no JHFS +:

[macbookpro08-centrim:~] gjp22% xattr -l /Users/gjp22/Desktop/product\ of\ NeoOffice\ 3.2.1\ Patch\ 5.docx 
com.apple.FinderInfo:
00000000  4E 4F 25 46 00 00 00 00 00 00 00 00 00 00 00 00  |NO%F............|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020

Exemplo 2 do NeoOffice

O NeoOffice 3.2.1 Patch 5 salva em uma unidade flash USB com o MS-DOS FAT32, limpando pelo BlueHarvest:

2012-05-12 06:42:08.349 BlueHarvest[31146]: Deleted ._product of NeoOffice 3.2.1 Patch 5.docx in /Volumes/FAT32/example.

Exemplo 3 do NeoOffice

O NeoOffice 3.2.1 Patch 5 salva em um volume montado pelo OS X com o tipo de sistema de arquivos webdav, não o SharePoint, limpando pelo BlueHarvest:

[macbookpro08-centrim:~] gjp22% mount | grep dav
https://www.box.net/dav/ on /Volumes/dav (webdav, nodev, noexec, nosuid, mounted by gjp22)
[macbookpro08-centrim:~] gjp22% xattr -l /Volumes/dav/product\ of\ NeoOffice\ 3.2.1\ Patch\ 5.docx 
[macbookpro08-centrim:~] gjp22% 
  • o salvamento do NeoOffice no webdavsistema de arquivos não envolveu um atributo estendido
  • O BlueHarvest não era necessário.

Dica : onde o Microsoft Office falha webdavao salvar no Microsoft SharePoint (veja abaixo), o NeoOffice é bem-sucedido.


Uso da Microsoft de códigos obsoletos

A versão mais recente do Office requer um código de tipo HFS e um código de criador de HFS quando um formato como o Microsoft Word ( .docx) é escolhido. Então - parece que ao salvar em um sistema de arquivos que não suporta esses valores em um com.apple.FinderInfoatributo estendido:

  • O Microsoft Office não pode salvar de maneira confiável sem criar vários ._arquivos.

Exemplo 1 da Microsoft

O Word 2011 14.2.1 salva em um volume montado pelo OS X com o tipo de sistema de arquivos webdav, não o SharePoint, limpeza pelo BlueHarvest:

May 11 18:32:49 macbookpro08 BlueHarvest[14649]: BlueHarvest started.
May 11 18:38:37 macbookpro08 BlueHarvest[14649]: Deleted ._Word Work File D_1.tmp in /Volumes/dav.
May 11 18:39:57 macbookpro08 BlueHarvest[14649]: Deleted ._Hello world, this is Microsoft.docx in /Volumes/dav.
May 11 18:42:28 macbookpro08 BlueHarvest[14649]: Deleted ._Hello world, this is Microsoft.docx in /Volumes/dav.

Exemplo 2 da Microsoft

Word 2011 14.2.2 (120421) salvando example.docxno mesmo ambiente:

2012-05-12 08:01:07.692 BlueHarvest[41131]: Deleted ._Word Work File D_769960778.tmp in /Volumes/dav.

Exemplo 3 da Microsoft

Word 2011 14.2.2 (120421) salvando another.docxno mesmo ambiente, encerrando e reabrindo, editando e salvando, editando e fechando e salvando:

2012-05-12 08:15:04.252 BlueHarvest[41131]: Deleted ._Word Work File D_.tmp in /Volumes/dav.
2012-05-12 08:18:48.735 BlueHarvest[41131]: Deleted ._another.docx in /Volumes/dav.
2012-05-12 08:21:12.658 BlueHarvest[41131]: Deleted ._Word Work File D_2.tmp in /Volumes/dav.

Dica : O Microsoft Office 2011 falha ao salvar no Microsoft SharePoint quando o tipo de sistema de arquivos é webdavporque o SharePoint não suporta nomes de arquivos que começam com um ponto .( ponto ). Consulte Perguntar respostas diferentes para É possível montar o SharePoint como um volume na 10.6?


Tipo e códigos do criador: plano de fundo, Apple Developer

A Apple começou a encorajar desenvolvedores de terceiros a se afastarem dos códigos de tipo e códigos de criadores há mais de uma década. No apêndice B do Guia de programação do sistema de arquivos, os tipos de arquivo e os códigos do criador recomendam que os códigos sejam:

geralmente descontinuados, você pode vê-los em arquivos e aplicativos herdados e em alguns lugares do sistema.

Graham Perrin
fonte
Leitura recomendada: Atributos estendidos: o bom, o não tão bom, o ruim. (2015-07-14)
Graham Perrin
10

Esses arquivos são criados pelo sistema operacional para acelerar as pesquisas, armazenar metadados (dados usados ​​pelo sistema operacional) sobre as preferências de uma pasta etc. O Windows e o OS X possuem esses tipos de arquivos. A seguir, é apresentada uma descrição desses arquivos extraídos de http://annoying-file-be-gone.snack.ws/faq.html :

.DS_Store- O nome de um arquivo no sistema operacional Apple OS X para armazenar atributos personalizados de uma pasta, como a posição dos ícones ou a escolha de uma imagem de plano de fundo (Leia mais )

.Spotlight-V100- Este arquivo contém informações para acelerar o recurso 'Pesquisa Spotlight'. A exclusão simplesmente forçaria a indexação dessas informações se você executasse outra Pesquisa Spotlight por um item nesta pasta.

.apDisk - Este arquivo contém informações sobre pastas compartilhadas e pode ser removido com segurança, pois será recriado automaticamente se a Apple precisar.

.VolumeIcon.icns- Este arquivo é usado para armazenar o ícone do volume (dispositivo USB) se o volume usar um ícone personalizado e não o ícone padrão. Se você deseja que o dispositivo continue usando esse ícone padrão, ou se a pasta / dispositivo que você deseja limpar contém um aplicativo, você pode manter esse arquivo em seu sistema. Como observação, se você quiser criar um ícone personalizado para o seu dispositivo, poderá criar / baixar um .icnsarquivo, renomeá-lo .VolumeIcon.icnse colocá- lo na sua pasta / dispositivo.

.fseventsd- Este arquivo é usado como um buffer para o daemon de eventos do sistema de arquivos. Se você estiver usando um programa que está monitorando esta pasta / dispositivo, esse arquivo pode ser usado para armazenar dados temporários.

.Trash& .Trashes- Essas pastas são usadas para armazenar itens excluídos da mesma maneira que o ícone 'Lixeira' da estação de trabalho. Se você não precisar desse recurso na sua pasta / dispositivo, poderá limpá-la para economizar espaço.

.TemporaryItems- Este arquivo é usado pelo sistema operacional para armazenar dados temporários quando os arquivos estão sendo copiados / movidos / anexados. Se você estiver executando algum programa que esteja acessando a pasta / dispositivo que deseja limpar e não estiver copiando ou movendo nenhum arquivo, esse arquivo pode simplesmente conter dados antigos para armazenamento em cache.

user149666
fonte
7

Para minimizar a presença de arquivos de sublinhado de ponto em unidades não formatadas em HFS +, você pode usar o painel de preferências BlueHarvest .

calum_b
fonte
3
O BlueHarvest é um excelente produto, mas algumas das análises de terceiros são enganosas. Os resultados do teste mostram que a criação não é impedida; essa criação é permitida e, de acordo com as preferências do usuário, o BlueHarvest pode limpar parte do que foi criado.
Graham Perrin
5

o problema é como o @geekosaur diz e é difícil de evitar se você usar as ferramentas de arquivo da Apple.

No entanto, se você usar apenas ferramentas de linha de comando e algumas de terceiros e nunca gravar no USB com o Finder, elas não serão criadas.

Marca
fonte
O comportamento não se limita ao software da Apple. Exemplo: O Microsoft Office 2011 requer ._arquivos ao salvar em sistemas de arquivos sem suporte para códigos de tipo HFS e códigos de criador.
Graham Perrin
5
@GrahamPerrin - eu quis dizer as ferramentas de arquivo da Apple para copiar etc - sim, qualquer aplicativo que utilize garfos de arquivo (por exemplo, as bibliotecas da Apple) os terá. Se você utiliza ferramentas que usam apenas bibliotecas de arquivos BSD, não há arquivos _.
Mark
3

Use find . -name "._*" -type fpara arquivar os arquivos do caminho local e use find . -name "._*" -type f -deletepara excluir todos os arquivos.

user3636223
fonte
Bem-vindo ao perguntar diferente! Embora sua resposta mostre como remover os arquivos, ela não responde ao Por que, O que e Como evitar no OP.
bjbk
@bjbk Esta resposta diz como excluir os arquivos, assim como a resposta altamente votada por Saeid Zebardast. Eu concordo que ninguém realmente aborda como evitá- los, nem por que eles aparecem.
Larsh
1

É realmente simples, o NTFS (Windows atual) FAT32 (Windows antigo) possui uma estrutura de dados muito específica para permissões, qual programa está designado para abrir esse arquivo, data de criação, data de modificação, tags, comentários de arquivo, ícone e outros metadados. Você também notará que as mesmas propriedades não serão exibidas no outro sistema operacional. (A data de criação do IE pode dizer que estava em 1/1/1990 e outros metadados não estão acessíveis no outro sistema operacional. Sempre que você estiver usando uma máquina gravando do HFS para NTFS ou FAT32, juntamente com uma máquina gravando esses arquivos nativos do FAT32 ou NTFS. ou ._, juntamente com os arquivos de armazenamento do DS, serão exibidos. É o acordo do sistema operacional com o fator de incompatibilidade dos elementos variados acima que não são consistentes. Portanto, você provavelmente deseja manter esses arquivos se estiver alternando entre o SO ' s para usar esses arquivos. Se você estiver usando apenas um sistema operacional ou outro, verifique se a mídia (disco rígido, cartão SD, etc.) está formatada corretamente ou se possui um driver que permite que o sistema operacional grave no formato de unidade não nativo do sistema operacional. (Eles estão disponíveis para o OSX para permitir a gravação de arquivos NTFS e FAT32 usando propriedades nativas e para o Windows 7 e 8 para gravar em unidades HFS + e EXFat (linux) usando as propriedades nativas.) Elas não são gratuitas, mas se você faça muitas e várias vezes isso elimina o excesso de dados duplicados que bagunçam a unidade.

user44674
fonte
-1

Você pode excluí-los através do FileZilla ou de um gerenciador de arquivos semelhante.

Mazzieh71
fonte
Não sei por que isso foi prejudicado, já que a maioria das respostas aprovadas nem sequer fornece uma solução. Esta é, na minha opinião, a solução mais fácil ... Como ._ e .DS_Store são arquivos relacionados ao Finder, a solução óbvia é evitar o Finder. Pessoalmente, prefiro usar o Transmit, mas o Filezilla é uma ótima alternativa gratuita.
Bryan Willis
3
Não diminuí o voto, mas é uma sugestão indesejável e erra a intenção da pergunta que está pedindo mais prevenção do que remediar. Quem quer gastar metade do tempo excluindo esses arquivos que continuam sendo gerados? P: "O que eu faço com o problema de lixo da nossa cidade?" A: "Pegue e coloque no lixo, duh."
Sridhar Sarnobat
-1

Eu tenho usado o seguinte método para facilitar. * eliminação do arquivo de prefixo nas unidades flash: remova a unidade flash do computador Apple, insira em uma máquina Windows, procure ". *. *" na unidade flash e, quando a pesquisa exibir os arquivos com o prefixo ._, exclua-os. Eu nunca excluo arquivos .Trashes ou .DS Store. Até agora sem problemas. Espero não estar causando um problema futuro para mim.

Jim VdPas
fonte
1
Exclusão manual? Propriedade de um computador Windows quando você é um usuário de Mac? Sei que você está apenas documentando o que funciona para você, mas não consigo imaginar alguém seguindo seu método.
Sridhar Sarnobat 30/06
-1

Sim, alguns de nós têm um uso para máquinas Macs e Windows, e eu costumava usar esse método. E se você possui um USB com vários arquivos .jpg que deseja reproduzir como uma apresentação de slides, precisa se livrar desses arquivos ._ irritantes para fazê-lo. Após muita pesquisa, encontrei uma maneira de usar o meu mac para remover os arquivos ._:

usando o Terminal:

  • ls -a listará todos os arquivos, incluindo o que começa com ._
  • para remover apenas um arquivo do diretório: rm -rf ._whateveryourfilenameis.jpg
  • para remover todos os ._arquivos:rm -rf ._*
  • para remover diretórios indesejados, incluindo .Trashes :rm -r .Trashes*

Limpei meu USB diretamente para uso como entrada de TV

T. Parlamento
fonte
-2

Cuidado ao excluir ._ relacionado ao Git, Visual Studio e Xcode! Eu tenho um aplicativo com muitos arquivos .mov e imagens e esses arquivos "._" foram confirmados. Excluí-os por meio das alterações do Visual Studio Team Explorer e, de alguma forma, a pasta do projeto aumentou de 500 MB a 40 GB sem adicionar arquivos ... ainda não tinha certeza do que aconteceu exatamente, mas acho que estava relacionado à exclusão desses arquivos, para que todos os arquivos sejam armazenados em cache cada .mov e imagem várias vezes antes de eu entender. Vi cada .mov e .png repetidos 20 a 30 vezes no Finder> Todos os arquivos.

Basta adicionar "._ *" ao seu arquivo .gitignore e eles não aparecerão como um arquivo alterado ao usar o TFS para seu projeto iOS Xcode.

whyoz
fonte