Ikona? plik na pulpicie OS X.

82

Kiedy korzystam lsz pulpitu z terminala (za pomocą ls ~/Desktop), widzę plik o nazwie Icon?. O ile wiem, jest pusta ( nano Icon?nic nie pokazuje). Nie pojawia się na moim rzeczywistym pulpicie i open Icon?pokazuje alert Findera

Ten element jest używany przez Mac OS X i nie można go otworzyć

Oto dane wyjściowe z 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"

Czy ktoś ma pojęcie, co to jest?

Chris
źródło
6
Prawdziwe pytanie brzmi: czy jest sposób, aby powstrzymać system operacyjny przed tworzeniem tych cholernych plików w każdym katalogu? Naprawdę denerwuje mnie to, że pojawiają się w Dropbox.
JeremyKun,
1
@JeremyKun 2017 tutaj i chciałbym poznać odpowiedź na to pytanie.
escapecharacter
Pliki te NIE są tworzone automatycznie „w każdym katalogu”, chyba że masz jakieś złośliwe oprogramowanie, które powoduje ich utworzenie. Ponadto - mogą cię denerwować, ale mają także swoją funkcjonalność. To implementacja „Niestandardowej ikony użytkownika” w MacOS. Jeśli użytkownik zdecyduje się wkleić dowolny obraz, który mu się podoba, aby służył jako ikona jakiegoś pliku lub katalogu - skończy się jako ukryty iCon? plik. Usunięcie ich po prostu usuwa niestandardową ikonę.
Motti Shneor,

Odpowiedzi:

95

Co to jest?

To nazwisko jest faktycznie Icon\r, z \rbycia powrotu karetki 0x0D. Jeśli pozwolenie powłoce na automatyczne uzupełnianie ścieżki w terminalu, to daje Icon^M, ^Mbędąc \r.

Icon^Mto plik istniejący we wszystkich katalogach, które mają niestandardową ikonę w Finderze. Jeśli zmienisz ikonę katalogu, np. W oknie dialogowym Uzyskaj informacje , wklejając obraz do ikony w lewym górnym rogu, Icon^Mplik zostanie utworzony.

.VolumeIcon.icnsZamiast tego zmiana ikony woluminu powoduje utworzenie ukrytego pliku.

Dlaczego jest niewidoczny?

Jest niewidoczny w Finderze, ponieważ jego hiddenatrybut jest ustawiony.

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

Zmień za pomocą chflags nohidden Icon^M.

Gdzie są jego dane?

Podczas gdy rozwidlenie danych pliku (tzn. Zawartość) jest puste (tzn. Rozmiar pliku 0 bajtów w terminalu), rzeczywiste dane ikony są przechowywane w rozwidleniu zasobów pliku .

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

Możesz skopiować rozwidlenie zasobów do pliku (aby wyświetlić np. W edytorze szesnastkowym) w następujący sposób:

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

 Jak mogę to zobaczyć?

Najłatwiejszym sposobem uzyskania obrazu jest skopiowanie ikony z okna dialogowego Uzyskaj informacje o folderze, który się w niej znajduje, do schowka, a następnie utworzenie nowego obrazu ze schowka w Preview ( Cmd-N). icnsDomyślnie jest to obraz.

Jego format to JPEG 2000 zgodnie z wersją Mac OS XnView i powinieneś być w stanie go otworzyć za pomocą tego programu. Wygląda na to, że nie współpracuje z innymi programami, które powinny obsługiwać JPEG 2000, więc ta informacja o formacie jest prawdopodobnie nieprawidłowa.

Daniel Beck
źródło
3
Apple faktycznie często ukrywa swoje dane w rozwidleniu zasobów. Nigdy nie mogę zdecydować, czy jest to schludne czy wprowadzające w błąd.
Lukasa
2
Jest konsekwentne. W końcu ikony zawartością widelca zasobów.
JdeBP,
3
Tęsknisz za pojedynczym drzewem, konik polny. Spójrz poza plik ikon woluminu na wielki las przypadków, w których przynajmniej w MacOS ikony znajdują się na widelcach zasobów . Jeśli starasz się być nowoczesny i modny, a my nie potrzebujemy żadnych fornirów-zasobów-rozwidlenia-jesteśmy-Unix-teraz, naprawdę powinieneś poprawić swoją odpowiedź, używając /..namedfork/rsrczamiast tego sufiksu nowoczesnego i modnego tego, który generuje komunikat ostrzegawczy. (-:
JdeBP
2
Moi niesamowite psychiczne moce powiedzieć, że wszystkie te printfs przejść do dziennika systemowego.
JdeBP
10

Icon?Plików wewnątrz katalogu zawiera niestandardową ikonę obrazu dla tego katalogu. Sam obraz jest przechowywany wewnątrz atrybutu rozszerzonego pliku, com.apple.ResourceForkdlatego Icon?wydaje się, że plik nie ma długości.

Możesz pobrać te dane za pomocą $ xattr -p com.apple.ResourceFork Icon?lub wyświetlić wszystkie rozszerzone atrybuty za pomocą$ xattr -l Icon?

W systemie Snow Leopard wydaje się, że zostały one wycofane z użycia w przypadku ikon systemowych (w przypadku ~ / Desktop / ikona ta byłaby widoczna podczas przeglądania katalogu domowego w widoku ikon.), Ale w przypadku dwóch niestandardowych ikon katalogu I mam w moim systemie, nadal istnieje.

NReilingh
źródło
O Icon^Mile wiem, „ikony systemowe” nigdy nie utworzyły pliku. Zmień nazwy tych specjalnych folderów na niestandardowe ikony (najłatwiejsze do zrobienia ~/Applications, ponieważ i tak domyślnie nie istnieje), a ich ikona zmieni się wraz z nim.
Daniel Beck
@Daniel Yup; Podejrzewam, że OP ma dostosowaną ikonę do swojego folderu Desktop.
NReilingh
5

Co to jest?

Jest to plik, w którym znajduje się obraz ikony folderu. Udało mi się go utworzyć tylko wtedy, gdy ręcznie załadowałem obraz do folderu. Domyślnie nie mam ich w swoim systemie.

Jak znaleźć pliki Icon ^ M.

UWAGA:

To nie to samo, co .icnsrozszerzenie pliku.

Czy powinieneś być paranoikiem, jeśli znajdziesz fałszywy wynik pozytywny, to użyj: ctrl+ v ctrl+ mzamiast?

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

Jak utworzyć plik Icon ^ M

  1. Otwórz Finder
  2. Kliknij folder prawym przyciskiem myszy
  3. Naciśnij i przytrzymaj Optionna klawiaturze
  4. Wybierz opcję Pokaż inspektora
  5. Przeciągnij obraz do lewej górnej ikony folderu.
  6. Uruchom ls -lahw tym katalogu
    1. Powinieneś zobaczyć:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Jak usunąć plik Icon ^ M

Jeśli musisz go usunąć z jakiegokolwiek powodu ... powiedz przypadkowo, celowo go testując.

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

Referencje z mojego postu dotyczące innego pytania:

Jak mogę usunąć puste foldery w Mac OS X?

JayRizzo
źródło
1
+1, ponieważ „Jak usunąć” brakuje w zaakceptowanej odpowiedzi. I nie, nie są one przydatne, gdy można uzyskać do nich dostęp z systemu Windows, za pomocą bash minGW.
gbarry