¿Icono? archivo en el escritorio OS X

82

Cuando lsmi escritorio desde la terminal (mediante el uso ls ~/Desktop), veo un archivo llamado Icon?. Por lo que puedo decir, está vacío ( nano Icon?no muestra nada). No aparece en mi escritorio real y open Icon?muestra la alerta del Finder

Mac OS X utiliza este elemento y no se puede abrir

Aquí está la salida 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"

¿Alguien tiene una idea de qué es esto?

Chris
fuente
66
La verdadera pregunta es: ¿hay alguna manera de evitar que el sistema operativo cree estos malditos archivos en cada directorio? Realmente me molesta que aparezcan en Dropbox.
JeremyKun
1
@JeremyKun 2017 aquí y me encantaría saber la respuesta a esto.
personaje de escape
Estos archivos NO se crean automáticamente "en cada directorio" a menos que tenga algún software desagradable que cause su creación. Además, pueden molestarlo, pero también tienen su funcionalidad. Esta es la implementación del "icono de usuario personalizado" en MacOS. Si el usuario elige pegar cualquier imagen de su agrado para que sirva como el icono de algún archivo o directorio, ¿terminará como una iCon oculta? archivo. Eliminarlos simplemente elimina el icono personalizado.
Motti Shneor

Respuestas:

95

¿Qué es?

Su nombre es en realidad Icon\r, \rsiendo el retorno de carro 0x0D. Si dejando que la cáscara autocompletar la ruta en Terminal, produce Icon^M, ^Mser \r.

Icon^Mes un archivo existente en todos los directorios que tienen un ícono personalizado en Finder. Si cambia el icono de un directorio, por ejemplo, en el cuadro de diálogo Obtener información pegando una imagen en el icono en la esquina superior izquierda, Icon^Mse crea el archivo.

Cambiar el icono de un volumen crea un .VolumeIcon.icnsarchivo oculto en su lugar.

¿Por qué es invisible?

Es invisible en Finder, porque su hiddenatributo está establecido.

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

Cambiar con el chflags nohidden Icon^M.

¿Dónde están sus datos?

Mientras que la bifurcación de datos del archivo (es decir, el contenido) está vacía (es decir, un tamaño de archivo de 0 bytes en la Terminal), los datos del icono real se almacenan en la bifurcación de recursos del archivo .

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

Puede copiar la bifurcación de recursos en un archivo (para ver, por ejemplo, en un editor hexadecimal) como este:

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

 ¿Cómo puedo verlo?

La forma más fácil de obtener la imagen es copiar el icono del cuadro de diálogo Obtener información de la carpeta que está contenida en el portapapeles y luego crear una nueva imagen desde el portapapeles en Vista previa ( Cmd-N). Es una icnsimagen entonces por defecto.

Su formato es JPEG 2000 de acuerdo con la versión para Mac OS de XnView y debería poder abrirlo con ese programa. Parece que no funciona con otros programas que deberían admitir JPEG 2000, por lo que esta información de formato probablemente sea incorrecta.

Daniel Beck
fuente
3
En realidad, Apple oculta sus datos en una bifurcación de recursos con bastante frecuencia. Nunca puedo decidir si es ordenado o engañoso.
Lukasa
2
Es consistente. Los iconos, después de todo, son contenidos de tenedor de recursos.
JdeBP
3
Echas de menos la madera de un solo árbol, saltamontes. Mire más allá de un archivo de iconos de volumen para ver el gran bosque de casos en los que, al menos tradicionalmente en MacOS, los iconos se encuentran en los tenedores de recursos . Si está tratando de ser moderno y moderno y no necesitamos bifurcaciones de recursos de steenking-somos-Unix-ahora, realmente debe corregir su respuesta para utilizar el /..namedfork/rsrcsufijo moderno y moderno del que genera un mensaje de advertencia. (-:
JdeBP
2
Mis increíbles poderes psíquicos me dicen que todos estos s van al registro del sistema. printf
JdeBP
10

Un Icon?archivo dentro de un directorio contiene una imagen de icono personalizado para ese directorio. La imagen en sí se almacena dentro de un atributo de archivo extendido, específicamente com.apple.ResourceFork, por lo que el Icon?archivo parece no tener longitud.

Puede recuperar esos datos con $ xattr -p com.apple.ResourceFork Icon?o ver todos los atributos extendidos con$ xattr -l Icon?

En Snow Leopard, al menos, parecen haber sido eliminados para los íconos del sistema (en el caso de ~ / Desktop /, ese ícono sería visible al ver su directorio de inicio en la vista de íconos), pero para los dos íconos de directorio personalizados I tener en mi sistema, todavía existe.

NReilingh
fuente
Los "iconos del sistema" nunca han creado un Icon^Marchivo hasta donde yo sé. Cambie el nombre de estas carpetas especiales con iconos personalizados (lo más fácil de hacer ~/Applications, ya que de todos modos no existe de manera predeterminada) y su icono cambiará con él.
Daniel Beck
@Daniel Yup; Supongo que OP tiene un icono personalizado para su carpeta Escritorio, entonces.
NReilingh
5

¿Qué es?

Es el archivo que almacena la imagen para su icono de carpeta, solo pude hacer que esto se creara si cargaba manualmente una imagen en la carpeta. No tengo estos en mi sistema por defecto.

Cómo encontrar el icono ^ M archivos

NOTA:

Esto no es lo mismo que .icnsla extensión de archivo.

¿Debería ser paranoico si encuentra un falso positivo y luego usa: ctrl+ v ctrl+ en mlugar 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;

Cómo crear el archivo Icon ^ M

  1. Buscador abierto
  2. Haga clic derecho en una carpeta
  3. Presione y sostenga Optionen su teclado
  4. Seleccione Mostrar inspector
  5. Arrastre una imagen al icono de la carpeta superior izquierda.
  6. Ejecutar ls -lahen ese directorio
    1. Debería ver:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Cómo quitar el archivo Icon ^ M

Si necesita eliminarlo por cualquier motivo ... diga accidentalmente a propósito probarlo.

#!/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;

Referencia de mi publicación sobre otra pregunta:

¿Cómo puedo eliminar carpetas vacías en Mac OS X?

JayRizzo
fuente
1
+1, ya que "Cómo quitar" falta en la respuesta aceptada. Y no, no son útiles cuando se accede desde Windows, a través de minGW's bash.
gbarry