Symbol? Datei auf dem OS X-Desktop

82

Wenn ich lsmeinen Desktop vom Terminal aus verwende ls ~/Desktop, sehe ich eine Datei mit dem Namen Icon?. Soweit ich das beurteilen kann, ist es leer ( nano Icon?zeigt nichts). Es wird nicht auf meinem Desktop angezeigt und open Icon?zeigt die Finder-Warnung an

Dieses Element wird von Mac OS X verwendet und kann nicht geöffnet werden

Hier ist die Ausgabe von 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"

Hat jemand eine Idee was das ist?

Chris
quelle
6
Die eigentliche Frage ist: Gibt es eine Möglichkeit, das Betriebssystem daran zu hindern, diese verdammten Dateien in jedem Verzeichnis zu erstellen? Es ärgert mich wirklich, dass sie in Dropbox auftauchen.
JeremyKun
1
@JeremyKun 2017 hier und ich würde gerne die Antwort darauf wissen.
Fluchtcharakter
Diese Dateien werden NICHT automatisch "in jedem Verzeichnis" erstellt, es sei denn, Sie haben eine böse Software, die ihre Erstellung verursacht. Auch - sie können Sie ärgern, aber sie haben auch ihre Funktionalität. Dies ist die Implementierung von "Custom user-icon" in MacOS. Wenn der Benutzer ein beliebiges Bild als Symbol für eine Datei oder ein Verzeichnis einfügt, wird es als verstecktes iCon angezeigt. Datei. Wenn Sie sie löschen, wird das benutzerdefinierte Symbol entfernt.
Motti Shneor

Antworten:

95

Was ist es?

Es heißt eigentlich Icon\r, mit \rdem Wagenrücklauf 0x0D. Wenn die Shell den Pfad in Terminal automatisch vervollständigen lässt, ergibt sich Icon^M, ^Mdass \r.

Icon^Mist eine Datei, die in allen Verzeichnissen vorhanden ist, die im Finder ein benutzerdefiniertes Symbol haben. Wenn Sie das Symbol eines Verzeichnisses ändern, z. B. im Dialogfeld " Informationen ", indem Sie ein Bild in das Symbol in der oberen linken Ecke einfügen, wird die Icon^MDatei erstellt.

Durch Ändern des Symbols eines Volumes wird .VolumeIcon.icnsstattdessen eine versteckte Datei erstellt.

Warum ist es unsichtbar?

Es ist im Finder unsichtbar, weil sein hiddenAttribut gesetzt ist.

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

Ändern Sie mit chflags nohidden Icon^M.

Wo sind seine Daten?

Während die Datengabel der Datei (dh der Inhalt) leer ist (dh eine Dateigröße von 0 Byte in Terminal), werden die tatsächlichen Symboldaten in der Ressourcengabel der Datei gespeichert .

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

Sie können den Resource Fork wie folgt in eine Datei kopieren (um sie z. B. in einem Hex-Editor anzuzeigen):

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

 Wie kann ich es sehen?

Am einfachsten erhalten Sie das Bild, indem Sie das Symbol aus dem Dialogfeld " Informationen " des Ordners, in dem es sich befindet, in die Zwischenablage kopieren und dann in Preview ( Cmd-N) ein neues Bild aus der Zwischenablage erstellen . Es ist icnsdann standardmäßig ein Bild.

Das Format ist JPEG 2000 gemäß der Mac OS-Version von XnView, und Sie sollten es mit diesem Programm öffnen können. Es scheint nicht mit anderen Programmen zu funktionieren, die JPEG 2000 unterstützen sollten, daher sind diese Formatinformationen wahrscheinlich falsch.

Daniel Beck
quelle
3
Apple versteckt seine Daten tatsächlich ziemlich häufig in einem Resource Fork. Ich kann mich nie entscheiden, ob es ordentlich oder irreführend ist.
Lukasa
2
Es ist konsequent. Icons , nachdem alle sind Resource Fork Inhalt.
JdeBP
3
Sie vermissen das Holz für einen einzigen Baum, Heuschrecke. Schauen Sie über eine Datei mit Volumensymbolen hinaus in den großen Wald von Fällen, in denen traditionell zumindest in MacOS Symbole in Ressourcengabeln zu finden sind . Wenn Sie versuchen, ganz modern und hip zu sein und wir brauchen keine Lenkungsressourcen, wir sind jetzt Unix, sollten Sie Ihre Antwort wirklich korrigieren, um /..namedfork/rsrcstattdessen das Suffix modern und hip zu verwenden desjenigen, der eine Warnmeldung generiert. (-:
JdeBP
2
Meine erstaunlichen psychischen Kräfte sagen mir , dass alle diese printfs in das Systemprotokoll gehen.
JdeBP
10

Eine Icon?Datei in einem Verzeichnis enthält ein benutzerdefiniertes Symbolbild für dieses Verzeichnis. Das Bild selbst wird in einem erweiterten Dateiattribut gespeichert com.apple.ResourceFork, weshalb die Icon?Datei scheinbar keine Länge hat.

Sie können diese Daten mit abrufen $ xattr -p com.apple.ResourceFork Icon?oder alle erweiterten Attribute mit anzeigen$ xattr -l Icon?

Zumindest in Snow Leopard scheinen sie für Systemsymbole nicht mehr verfügbar zu sein (im Fall von ~ / Desktop / wird dieses Symbol angezeigt, wenn Sie Ihr Basisverzeichnis in der Symbolansicht anzeigen.), Jedoch für die beiden benutzerdefinierten Verzeichnissymbole I Habe auf meinem System noch existiert.

NReilingh
quelle
Die "Systemsymbole" haben meines Wissens noch nie eine Icon^MDatei erstellt . Benennen Sie diese speziellen Ordner mit benutzerdefinierten Symbolen um (am einfachsten ~/Applications, da sie ohnehin nicht standardmäßig vorhanden sind), und ihr Symbol ändert sich damit.
Daniel Beck
@ Daniel Yup; Ich nehme an, OP hat dann ein benutzerdefiniertes Symbol für seinen Desktop-Ordner.
NReilingh
5

Was ist es?

Es ist die Datei, in der das Bild für Ihr Ordnersymbol gespeichert ist. Ich konnte dieses nur erstellen, wenn ich ein Bild manuell in den Ordner geladen habe. Ich habe diese standardmäßig nicht auf meinem System.

So finden Sie die Icon ^ M-Dateien

HINWEIS:

Dies ist nicht dasselbe wie die .icnsDateierweiterung.

Sollten Sie paranoid sein, wenn Sie ein falsches Positiv finden, dann verwenden Sie: ctrl+ v ctrl+ manstelle von?

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

So erstellen Sie die Icon ^ M-Datei

  1. Öffnen Sie den Finder
  2. Klicken Sie mit der rechten Maustaste auf einen Ordner
  3. Drücken und halten Sie Optionauf Ihrer Tastatur
  4. Wählen Sie Show Inspector
  5. Ziehen Sie ein Bild auf das Ordnersymbol oben links.
  6. Führen Sie ls -lahin diesem Verzeichnis
    1. Das solltest du sehen:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

So entfernen Sie die Icon ^ M-Datei

Sollten Sie es aus irgendeinem Grund entfernen müssen, sagen Sie es versehentlich, indem Sie es absichtlich testen.

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

Verweis aus meinem Beitrag auf eine andere Frage:

Wie kann ich leere Ordner in Mac OS X löschen?

JayRizzo
quelle
1
+1, da "How to Remove" in der akzeptierten Antwort fehlt. Und nein, sie sind nicht nützlich, wenn über die minGW-Bash von Windows aus darauf zugegriffen wird.
Gbarry