Icône? déposer sur le bureau OS X

82

Lorsque je lsmon bureau à partir du terminal (en utilisant ls ~/Desktop), je vois un fichier nommé Icon?. Autant que je sache, il est vide ( nano Icon?ne montre rien). Il ne s'affiche pas sur mon bureau actuel et open Icon?affiche 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"

Est-ce que quelqu'un a une idée de ce que c'est?

Chris
la source
6
La vraie question est la suivante: existe-t-il un moyen d'empêcher le système d'exploitation de créer ces fichus fichiers dans chaque répertoire? Ça m'énerve vraiment qu'ils apparaissent dans Dropbox.
JeremyKun
1
@JeremyKun 2017 ici et j'aimerais connaître la réponse à cette question.
escapecharacter
Ces fichiers ne sont PAS créés automatiquement "dans chaque répertoire" à moins que vous n'ayez un logiciel désagréable qui entraîne leur création. En outre, ils peuvent vous agacer, mais ils ont aussi leur fonctionnalité. C'est l'implémentation de "Custom user-icon" sous MacOS. Si l'utilisateur choisit de coller une image de son choix pour qu'il serve d'icône de fichier ou de répertoire, il se retrouvera sous la forme d'un iCon caché? fichier. Leur suppression supprime simplement l'icône personnalisée.
Motti Shneor

Réponses:

95

Qu'Est-ce que c'est?

Son nom est en réalité Icon\r, avec \rêtre le retour chariot 0x0D. Si vous laissez le shell compléter automatiquement le chemin dans Terminal, il cède Icon^M, ^Métant \r.

Icon^Mest un fichier existant dans tous les répertoires ayant une icône personnalisée dans le Finder. Si vous modifiez l'icône d'un répertoire, par exemple dans sa boîte de dialogue Obtenir des informations en collant une image dans l'icône située dans le coin supérieur gauche, le Icon^Mfichier est créé.

Changer l'icône d'un volume crée un .VolumeIcon.icnsfichier caché à la place.

Pourquoi est-ce invisible?

C'est invisible dans le Finder, car son hiddenattribut est défini.

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

Changer avec chflags nohidden Icon^M.

Où sont ses données?

Alors que le fichier fork (c.-à-d. Le contenu) du fichier est vide (c'est-à-dire que la taille du fichier dans Terminal est de 0 octets), les données d'icône réelles sont stockées dans le fork des ressources du fichier .

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

Vous pouvez copier la branche de ressources dans un fichier (à afficher par exemple dans un éditeur hexadécimal) comme ceci:

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

 Comment puis-je le voir?

Le moyen le plus simple d’obtenir l’image est de copier l’icône de la boîte de dialogue Obtenir des informations du dossier qui la contient dans le Presse-papiers, puis de créer une nouvelle image à partir du Presse-papiers dans Aperçu ( Cmd-N). C'est une icnsimage alors par défaut.

Son format est JPEG 2000 selon la version Mac OS de XnView et vous devriez pouvoir l'ouvrir avec ce programme. Il semble que cela ne fonctionne pas avec les autres programmes qui devraient supporter JPEG 2000, donc les informations de ce format sont probablement fausses.

Daniel Beck
la source
3
En fait, Apple cache assez souvent ses données dans une fourchette de ressources. Je ne peux jamais décider si c'est net ou trompeur.
Lukasa
2
C'est cohérent. Après tout, les icônes sont le contenu de la fourchette de ressources.
JdeBP
3
Vous manquez du bois pour un seul arbre, la sauterelle. Au-delà d’un fichier d’icône de volume, parcourez la grande forêt de cas où, traditionnellement au moins sous MacOS, les icônes se trouvent dans les fourchettes de ressources . Si vous essayez d'être à la fois moderne et branché et que vous n'avez pas besoin de ressources, nous devrions /..namedfork/rsrcplutôt corriger votre réponse pour utiliser plutôt le suffixe moderne et branché. de celui qui génère un message d'avertissement. (-:
JdeBP
2
Mes incroyables pouvoirs psychiques me disent que tout cela est enregistré dans le journal système. printf
JdeBP
10

Un Icon?fichier dans 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 com.apple.ResourceFork, ce qui explique pourquoi le Icon?fichier ne semble pas avoir de longueur.

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

Sous Snow Leopard, au moins, elles semblent avoir été supprimées progressivement pour les icônes système (dans le cas de ~ / Desktop /, cette icône serait visible lors de l'affichage de votre répertoire de base sous forme d'icônes.), Mais pour les deux icônes de répertoire personnalisées I avoir sur mon système, il existe toujours.

NRiling
la source
Les "icônes système" n'ont jamais créé de Icon^Mfichier pour autant que je sache. Renommez ces dossiers spéciaux avec des icônes personnalisées (le plus facile à faire ~/Applications, car de toute façon, il n’existe pas par défaut) et leur icône changera en conséquence.
Daniel Beck
@Daniel Yup; Je suppose que OP a une icône personnalisée pour son dossier Desktop, alors.
NReilingh
5

Qu'Est-ce que c'est?

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

Comment trouver les fichiers Icon ^ M

REMARQUE:

Ce n'est pas la même chose que l' .icnsextension de fichier.

Si vous êtes paranoïaque à propos de la découverte d’un faux positif, utilisez: ctrl+ v ctrl+ mau 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. Open Finder
  2. Clic droit sur un dossier
  3. Appuyez et maintenez Optionsur votre clavier
  4. Sélectionnez Afficher l'inspecteur
  5. Faites glisser une image vers l'icône du dossier en haut à gauche.
  6. Exécuter ls -lahsur ce répertoire
    1. Tu devrais voir:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Comment supprimer le fichier Icon ^ M

Si vous avez besoin de le retirer pour une raison quelconque ... dites-le par mégarde de le tester.

#!/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 puis-je supprimer des dossiers vides sous Mac OS X?

JayRizzo
la source
1
+1, car "Comment supprimer" manque à la réponse acceptée. Et non, ils ne sont pas utiles lorsqu'ils sont utilisés à partir de Windows, via le bash de minGW.
gbarry