Ícone? arquivo na área de trabalho do OS X

82

Quando eu lsminha área de trabalho do terminal (usando ls ~/Desktop), vejo um arquivo chamado Icon?. Tanto quanto posso dizer, está vazio ( nano Icon?não mostra nada). Ele não aparece na minha área de trabalho real e open Icon?mostra o alerta do Finder

Este item é usado pelo Mac OS X e não pode ser aberto

Aqui está a saída de mdls Icon?:

kMDItemContentType         = ""
kMDItemFSContentChangeDate = 2009-09-23 13:32:52 -0600
kMDItemFSCreationDate      = 2009-09-20 07:27:46 -0600
kMDItemFSCreatorCode       = "MACS"
kMDItemFSFinderFlags       = 16384
kMDItemFSHasCustomIcon     = 0
kMDItemFSInvisible         = 1
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery      = 0
kMDItemFSLabel             = 0
kMDItemFSName              = "Icon "
kMDItemFSNodeCount         = 0
kMDItemFSOwnerGroupID      = 20
kMDItemFSOwnerUserID       = 501
kMDItemFSSize              = 0
kMDItemFSTypeCode          = "icon"

Alguém tem uma idéia do que é isso?

Chris
fonte
6
A verdadeira questão é: existe uma maneira de impedir que o sistema operacional crie esses malditos arquivos em todos os diretórios? Realmente me irrita que eles apareçam no Dropbox.
JeremyKun
1
@ JeremyKun 2017 aqui e eu adoraria saber a resposta para isso.
Escapadecharacter #
Esses arquivos NÃO são criados automaticamente "em todos os diretórios", a menos que você tenha algum software desagradável que cause sua criação. Além disso - eles podem incomodá-lo, mas também têm suas funcionalidades. Esta é a implementação do "ícone de usuário personalizado" no MacOS. Se o usuário optar por colar qualquer imagem de sua preferência para servir como ícone de algum arquivo ou diretório - ele terminará como um iCon oculto? Arquivo. Excluí-los simplesmente remove o ícone personalizado.
Motti Shneor #

Respostas:

95

O que é isso?

Seu nome é realmente Icon\r, com \rser o retorno de carro 0x0D. Se permitir que o shell complete automaticamente o caminho no Terminal, ele produz Icon^M, ^Msendo \r.

Icon^Mé um arquivo existente em todos os diretórios que possuem um ícone personalizado no Finder. Se você alterar o ícone de um diretório, por exemplo, na caixa de diálogo Obter informações , colando uma imagem no ícone no canto superior esquerdo, o Icon^Marquivo será criado.

Alterar o ícone de um volume cria um .VolumeIcon.icnsarquivo oculto .

Por que é invisível?

É invisível no Finder, porque seu hiddenatributo está definido.

$ ls -lO Icon^M 
-rw-r--r--@ 1 danielbeck  staff  hidden 0 24 Apr 23:29 Icon?

Mude com chflags nohidden Icon^M.

Onde estão seus dados?

Enquanto a bifurcação de dados do arquivo (ou seja, conteúdo) estiver vazia (ou seja, um tamanho de arquivo de 0 bytes no Terminal), os dados reais do ícone são armazenados na bifurcação de recursos do arquivo .

$ ls -l@ Icon^M
    com.apple.ResourceFork  350895 

Você pode copiar a bifurcação de recursos em um arquivo (para visualizar, por exemplo, em um editor hexadecimal), assim:

$ cp Icon^M/..namedfork/rsrc Icondata

 Como posso vê-lo?

A maneira mais fácil de obter a imagem é copiar o ícone da caixa de diálogo Obter informações da pasta em que está contida na área de transferência e, em seguida, criar uma nova imagem a partir da área de transferência em Preview ( Cmd-N). É uma icnsimagem então por padrão.

Seu formato é JPEG 2000, de acordo com a versão do Mac OS do XnView, e você deve poder abri-lo com esse programa. Parece não funcionar com outros programas que devem oferecer suporte ao JPEG 2000, portanto, essas informações de formato provavelmente estão incorretas.

Daniel Beck
fonte
3
A Apple realmente faz isso ocultando seus dados em uma bifurcação de recursos com bastante frequência. Nunca consigo decidir se é puro ou enganoso.
Lukasa
2
É consistente. Afinal, os ícones são conteúdos de bifurcação de recursos.
JdeBP
3
Você sente falta da madeira de uma única árvore, gafanhoto. Olhe além de um arquivo de ícone de volume para a grande floresta de casos em que, tradicionalmente no MacOS, pelo menos, os ícones podem ser encontrados nos forks de recursos . Se você está tentando ser moderno e moderno, e não precisamos de garfos de recursos para forjados, somos o Unix agora, você deve realmente corrigir sua resposta para usar o /..namedfork/rsrcsufixo moderno e moderno daquele que gera uma mensagem de aviso. (-:
JdeBP
2
Meus incríveis poderes psíquicos me dizem que todos esses s vão para o log do sistema. printf
JdeBP
10

Um Icon?arquivo dentro de um diretório contém uma imagem de ícone personalizada para esse diretório. A própria imagem é armazenada dentro de um atributo de arquivo estendido, especificamente, com.apple.ResourceForke é por isso que o Icon?arquivo parece não ter tamanho.

Você pode recuperar esses dados $ xattr -p com.apple.ResourceFork Icon?ou visualizar todos os atributos estendidos com$ xattr -l Icon?

No Snow Leopard, pelo menos, eles parecem ter sido desativados para os ícones do sistema (no caso de ~ / Desktop /, esse ícone ficaria visível ao exibir seu diretório pessoal na visualização de ícones.), Mas para os dois ícones de diretório personalizados I tem no meu sistema, ele ainda existe.

NReilingh
fonte
Os "ícones do sistema" nunca criaram um Icon^Marquivo, tanto quanto eu sei. Renomeie essas pastas especiais com ícones personalizados (mais fáceis de fazer ~/Applications, pois, de qualquer maneira, não existem por padrão) e o ícone deles será alterado.
Daniel Beck
@Daniel Yup; Suponho que o OP tenha um ícone personalizado para a pasta Desktop, então.
NReilingh
5

O que é isso?

É o arquivo que armazena a imagem para o ícone da sua pasta. Só consegui criar isso se eu carregasse manualmente uma imagem na pasta. Eu não os tenho no meu sistema por padrão.

Como encontrar os arquivos de ícone ^ M

NOTA:

Isso não é o mesmo que .icnsextensão de arquivo.

Você deve ficar paranóico se encontrar um falso positivo, use: ctrl+ v ctrl+ em mvez de?

#!/bin/bash
# =============================================================================
# MAC OSX HIGH SIERRA 10.13.4 (17E199)
# Terminal: Version: 2.8.2 64-Bit (Intel): Yes
# Terminal Location: /Applications/Utilities/Terminal.app
# =============================================================================

echo 'Searching Documents for Icon files...'
find ~/Documents -type f -name 'Icon?' -print;

Como criar o arquivo Icon ^ M

  1. Open Finder
  2. Clique com o Botão Direito em uma Pasta
  3. Pressione e segure Optionno teclado
  4. Selecione Mostrar Inspetor
  5. Arraste uma imagem para o ícone da pasta superior esquerda.
  6. Executar ls -lahnesse diretório
    1. Você deveria ver:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Como remover o arquivo Icon ^ M

Se você precisar removê-lo por qualquer motivo ... diga acidentalmente de propósito testando-o.

#!/bin/bash
# =============================================================================
# MAC OSX HIGH SIERRA 10.13.4 (17E199)
# Terminal: Version: 2.8.2 64-Bit (Intel): Yes
# Terminal Location: /Applications/Utilities/Terminal.app
# =============================================================================

echo 'Removing Icon files from Documents...'
find ~/Documents -type f -name 'Icon?' -print -delete;

Referência do meu post sobre outra pergunta:

Como posso excluir pastas vazias no Mac OS X?

JayRizzo
fonte
1
+1, pois "Como remover" está ausente na resposta aceita. E não, eles não são úteis quando acessados ​​no Windows, através do basG do minGW.
gbarry 15/02