100 votes

Fichier Icon ? sur le bureau de l'OS X

Quand je ls mon bureau à partir du terminal (en utilisant ls ~/Desktop ), je vois un fichier nommé Icon? . Pour autant que je sache, il est vide ( nano Icon? ne montre rien). Il ne s'affiche pas sur mon bureau actuel et open Icon? montre l'alerte du Finder

Cet élément est utilisé par Mac OS X et ne peut pas être ouvert.

Voici le résultat 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"

Quelqu'un a-t-il une idée de ce que c'est ?

119voto

Daniel Beck Points 105590

Qu'est-ce que c'est ?

Son nom est en fait Icon\r con \r étant le retour chariot 0x0D . Si l'on laisse le Shell autocompléter le chemin dans Terminal, cela donne Icon^M , ^M être \r .

Icon^M est un fichier existant dans tous les répertoires qui ont une icône personnalisée dans le Finder. Si vous changez l'icône d'un répertoire, par exemple dans sa section Obtenir des informations en collant une image dans l'icône qui se trouve dans le coin supérieur gauche, le bouton Icon^M est créé.

La modification de l'icône d'un volume crée une .VolumeIcon.icns à la place.

Pourquoi est-il invisible ?

Il est invisible dans le Finder, parce que ses hidden est défini.

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

Changez avec chflags nohidden Icon^M .

Où sont ses données ?

Alors que la fourche de données du fichier (c'est-à-dire le contenu) est vide (c'est-à-dire une taille de fichier de 0 octet en mode terminal), les données réelles de l'icône sont stockées dans le fichier fourchette de ressources .

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

Vous pouvez copier la fourchette de ressources dans un fichier (pour le visualiser, par exemple, dans un éditeur hexagonal) comme ceci :

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

Comment puis-je le visualiser ?

Le moyen le plus simple d'obtenir l'image est de copier l'icône depuis le site Web de la Commission européenne. Obtenir des informations du dossier dans lequel il est contenu dans le presse-papiers, puis créez une nouvelle image à partir du presse-papiers dans Aperçu ( Cmd-N ). Il s'agit d'un icns image alors par défaut.

Son format est le suivant icns codé comme un ressource en icônes avec derez . Si vous l'ouvrez dans un éditeur hexadécimal et que vous supprimez les 260 premiers octets (de sorte que le fichier commence par le symbole icns byte-string magique), vous pouvez l'ouvrir dans Preview.app. Alternativement, vous pouvez l'ouvrir avec XnView

13voto

chris Points 10694

Un site Icon? à l'intérieur d'un répertoire contient une image d'icône personnalisée pour ce répertoire. L'image elle-même est stockée dans un attribut de fichier étendu, plus précisément, com.apple.ResourceFork C'est pourquoi l Icon? Le fichier semble ne pas avoir de longueur.

Vous pouvez récupérer ces données avec $ xattr -p com.apple.ResourceFork Icon? ou afficher tous les attributs étendus avec $ xattr -l Icon?

Sur Snow Leopard, au moins, elles semblent avoir été supprimées pour les icônes système (dans le cas de ~/Desktop/, cette icône serait visible lorsque vous affichez votre répertoire personnel en vue icône) mais pour les deux icônes de répertoire personnalisées que j'ai sur mon système, elles existent toujours.

7voto

JayRizzo Points 232

Qu'est-ce que c'est ?

C'est le fichier qui stocke l'image de l'icône de votre dossier, je n'ai pu le faire créer que si j'ai chargé manuellement une image dans le dossier. Je ne les ai pas sur mon système par défaut.

Comment trouver les fichiers Icon^M

HINWEIS:

Ce n'est pas la même chose que .icns extension de fichier.

Si vous êtes paranoïaque à l'idée de trouver un faux positif, utilisez-le : ctrl + v ctrl + m au lieu 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;

Comment créer le fichier Icon^M

  1. Ouvrir le Finder
  2. Clic droit sur un dossier
  3. Appuyer et maintenir Option sur votre clavier
  4. Sélectionnez Afficher l'inspecteur
  5. Faites glisser une image vers l'icône de dossier en haut à gauche.
  6. Exécuter ls -lah sur ce répertoire
    1. Vous devriez voir :
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Comment supprimer le fichier Icon^M

Si vous devez l'enlever pour une raison quelconque... disons accidentellement ou volontairement, testez-le.

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

Référence de mon post sur une autre question :

Comment supprimer les dossiers vides dans Mac OS X ?

1voto

Mike Conant Points 11

Le fichier Icon^M est un fichier système caché de macOS qui gère une image personnalisée pour le dossier qui le contient. Cependant, les utilisateurs peuvent trouver ces fichiers créés pour d'autres raisons.

Par exemple, la version macOS de Google Drive créait un fichier Icon dans chaque dossier afin de suivre l'état de la synchronisation.

Vous pouvez supprimer ces fichiers en toute sécurité. Dans le Terminal, à partir du répertoire parent, exécutez la commande suivante : (assurez-vous d'insérer le ^M avec les touches ctrl-v, ctrl-m) :

find . -type f -name 'Icon^M' -exec rm -f {} \;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X