Icona? file sul desktop OS X.


82

Quando ho il lsmio desktop dal terminale (usando ls ~/Desktop), vedo un file chiamato Icon?. Per quanto ne so, è vuoto ( nano Icon?non mostra nulla). Non viene visualizzato sul mio desktop reale e open Icon?mostra l'avviso Finder

Questo elemento è utilizzato da Mac OS X e non può essere aperto

Ecco l'output di 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"

Qualcuno ha un'idea di cosa sia?


6
La vera domanda è: c'è un modo per impedire al sistema operativo di creare questi dannati file in ogni directory? Mi dà davvero fastidio che vengano visualizzati su Dropbox.
JeremyKun,

1
@JeremyKun 2017 qui e mi piacerebbe sapere la risposta a questo.
escapecharacter,

Questi file NON vengono creati automaticamente "in ogni directory" a meno che non si disponga di software dannoso che ne causa la creazione. Inoltre, potrebbero infastidirti, ma hanno anche la loro funzionalità. Questa è l'implementazione di "Icona utente personalizzata" in MacOS. Se l'utente sceglie di incollare qualsiasi immagine di suo gradimento per fungere da icona di un file o directory - finirà per essere un iCon nascosto? file. La loro eliminazione rimuove semplicemente l'icona personalizzata.
Motti Shneor,

Risposte:


95

Che cos'è?

Il suo nome è in realtà Icon\r, con \ressere il ritorno a capo 0x0D. Se lasciare che la shell completi automaticamente il percorso in Terminale, si ottiene Icon^M, ^Messendo \r.

Icon^Mè un file esistente in tutte le directory che hanno un'icona personalizzata nel Finder. Se si modifica l'icona di una directory, ad esempio nella finestra di dialogo Ottieni informazioni incollando un'immagine nell'icona nell'angolo in alto a sinistra, il Icon^Mfile viene creato.

La modifica dell'icona di un volume crea invece un .VolumeIcon.icnsfile nascosto .

Perché è invisibile?

È invisibile in Finder, perché il suo hiddenattributo è impostato.

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

Cambia con chflags nohidden Icon^M.

Dove sono i suoi dati?

Mentre il fork dei dati del file (ovvero il contenuto) è vuoto (ovvero una dimensione del file di 0 byte nel Terminale), i dati effettivi dell'icona sono memorizzati nel fork delle risorse del file .

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

È possibile copiare il fork delle risorse in un file (per visualizzare ad esempio in un editor esadecimale) in questo modo:

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

 Come posso vederlo?

Il modo più semplice per ottenere l'immagine è copiare l'icona dalla finestra di dialogo Ottieni informazioni della cartella in cui è contenuta negli appunti, quindi creare una nuova immagine dagli appunti in Anteprima ( Cmd-N). È icnsun'immagine quindi per impostazione predefinita.

Il suo formato è JPEG 2000 secondo la versione di XnView per Mac OS e dovresti essere in grado di aprirlo con quel programma. Non sembra funzionare con altri programmi che dovrebbero supportare JPEG 2000, quindi queste informazioni sul formato sono probabilmente errate.



3
Apple in realtà fa questo nascondere i propri dati in un fork di risorse abbastanza frequentemente. Non riesco mai a decidere se è pulito o fuorviante.
Lukasa,

2
È coerente. Le icone dopo tutto sono contenuti del fork delle risorse.
JdeBP,

3
Ti manca il legno per un singolo albero, cavalletta. Guarda oltre un file icona di volume nella grande foresta di casi in cui, tradizionalmente almeno in MacOS, le icone si trovano nelle fork delle risorse . Se stai cercando di essere tutto moderno e alla moda e noi non abbiamo bisogno di forchettate di risorse, siamo-Unix-ora, dovresti davvero correggere la tua risposta per usare /..namedfork/rsrcinvece il suffisso moderno e alla moda di quello che genera un messaggio di avviso. (-:
JdeBP,

2
I miei incredibili psichiche poteri mi dicono che tutti questi printfs vanno al registro di sistema.
JdeBP,

10

Un Icon?file all'interno di una directory contiene un'immagine icona personalizzata per quella directory. L'immagine stessa è memorizzata all'interno di un attributo di file esteso, in particolare, com.apple.ResourceForkmotivo per cui il Icon?file sembra non avere lunghezza.

È possibile recuperare quei dati con $ xattr -p com.apple.ResourceFork Icon?o visualizzare tutti gli attributi estesi con$ xattr -l Icon?

Su Snow Leopard, almeno, sembrano essere stati gradualmente eliminati per le icone di sistema (nel caso di ~ / Desktop /, quell'icona sarebbe visibile quando si visualizza la propria directory home nella vista icona.) Ma per le due icone di directory personalizzate I avere sul mio sistema, esiste ancora.


Le "icone di sistema" non hanno mai creato un Icon^Mfile per quanto ne so. Rinomina queste cartelle speciali con icone personalizzate (la più semplice da fare ~/Applications, in quanto non esiste comunque per impostazione predefinita) e la loro icona cambierà con essa.
Daniel Beck

@Daniel Yup; Suppongo quindi che OP abbia un'icona personalizzata per la sua cartella Desktop.
NReilingh,

5

Che cos'è?

È il file che memorizza l'immagine per l'icona della tua cartella, sono stato in grado di farlo creare solo se ho caricato manualmente un'immagine nella cartella. Non li ho sul mio sistema di default.

Come trovare l'icona ^ M file

NOTA:

Non è uguale .icnsall'estensione del file.

Dovresti essere paranoico se trovi un falso positivo quindi usa: ctrl+ v ctrl+ minvece di?

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

Come creare l'icona ^ M file

  1. Apri Finder
  2. Fare clic con il tasto destro su una cartella
  3. Tieni premuto Optionsulla tastiera
  4. Seleziona Mostra ispettore
  5. Trascina un'immagine sull'icona della cartella in alto a sinistra.
  6. Esegui ls -lahsu quella directory
    1. Tu dovresti vedere:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Come rimuovere il file Icon ^ M

Se hai bisogno di rimuoverlo per qualsiasi motivo ... dì per sbaglio di proposito testandolo.

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

Riferimento dal mio post su un'altra domanda:

Come posso eliminare le cartelle vuote in Mac OS X?


1
+1, poiché "Come rimuovere" mancante dalla risposta accettata. E no, non sono utili quando si accede da Windows, tramite bash di minGW.
Gbarry,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.