Ікона? файл на робочому столі OS X


82

Коли я перебуваю на lsробочому столі з терміналу (за допомогою ls ~/Desktop), я бачу файл з назвою Icon?. Наскільки я можу сказати, він порожній ( nano Icon?нічого не показує). Він не відображається на моєму фактичному робочому столі та open Icon?показує попередження Finder

Цей елемент використовується в Mac OS X, і його неможливо відкрити

Ось результат із 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"

Хтось має уявлення про те, що це?


6
Справжнє питання: чи є спосіб зупинити операційну систему від створення цих проклятих файлів у кожному каталозі? Мене справді дратує те, що вони з'являються в Dropbox.
JeremyKun

1
@JeremyKun 2017 тут, і я хотів би знати відповідь на це.
втеча ззаду

Ці файли НЕ створюються автоматично "у кожному каталозі", якщо у вас є неприємне програмне забезпечення, яке викликає їх створення. Також - вони можуть вас дратувати, але вони також мають свою функціональність. Це реалізація "Користувацької іконки користувача" в MacOS. Якщо користувач вирішить вставити будь-яке зображення за своїм смаком, яке слугуватиме піктограмою якогось файлу чи каталогу - воно виявиться прихованим iCon? файл. Видалення їх просто видаляє користувацький значок.
Motti Shneor

Відповіді:


95

Що це?

Назву це насправді Icon\r, з \rповерненням вагона 0x0D. Якщо дозволити оболонці самостійно заповнити шлях у Terminal, він виходить Icon^M, ^Mбудучи \r.

Icon^Mце файл, що існує у всіх каталогах, які мають власну піктограму в Finder. Якщо ви зміните піктограму каталогу, наприклад, у діалоговому вікні Отримати інформацію , вставивши зображення у піктограму у верхньому лівому куті, Icon^Mфайл створюється.

Змінення піктограми гучності .VolumeIcon.icnsзамість цього створює прихований файл.

Чому він невидимий?

У Finder це невидимо, оскільки його hiddenатрибут встановлений.

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

Змінити на chflags nohidden Icon^M.

Де його дані?

Поки форк даних файлу (тобто вміст) порожній (тобто розмір файлу 0 байтів у терміналі), фактичні дані значка зберігаються у роздрібній ресурсі файлу .

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

Ви можете скопіювати виделку ресурсу у файл (для перегляду, наприклад, у шестигранному редакторі) таким чином:

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

 Як я можу це переглянути?

Найпростіший спосіб отримати зображення - скопіювати піктограму з діалогового вікна « Інформація про інформацію» папки, що міститься у буфер обміну, а потім створити нове зображення з буфера обміну в Preview ( Cmd-N). Це icnsза замовчуванням зображення.

Його формат - JPEG 2000 відповідно до версії XnView для Mac OS, і ви повинні мати можливість відкрити його за допомогою цієї програми. Схоже, це не працює з іншими програмами, які мають підтримувати JPEG 2000, тому ця інформація про формат, ймовірно, неправильна.



3
Apple насправді робить це ховаючи свої дані у вилку ресурсу досить часто. Я ніколи не можу вирішити, чи це акуратно чи вводити в оману.
Лукаша

2
Це послідовно. Зрештою, значки - це вміст виделкових ресурсів.
JdeBP

3
Вам не вистачає лісу для одного дерева, коника. Подивіться далі файл значків томів до великого лісу випадків, коли традиційно в MacOS як мінімум значки знаходяться у вилках ресурсів . Якщо ви намагаєтеся бути всіма сучасними та хіп, і нам - не потрібно-не-steenking-resource-forks-we-Unix-зараз, вам слід дійсно виправити свою відповідь, щоб використовувати сучасний /..namedfork/rsrcсуфікс та хіп того, хто генерує попереджувальне повідомлення. (-:
JdeBP

2
Мої дивовижні психічні сили сказати мені , що всі ці printfз перейти в системний журнал.
JdeBP

10

Icon?Файл всередині каталогу містить значок для користувача зображення для цього каталогу. Саме зображення зберігається всередині розширеного атрибута файлу, зокрема, com.apple.ResourceForkтому Icon?файл, здається, не має довжини.

Ви можете отримати ці дані за допомогою $ xattr -p com.apple.ResourceFork Icon?або переглянути всі розширені атрибути за допомогою$ xattr -l Icon?

Принаймні, у Snow Leopard вони, як видається, припинили роботу системних піктограм (У випадку ~ / Desktop /, ця піктограма була б видно під час перегляду домашнього каталогу в режимі перегляду значків), але для двох спеціальних значків каталогів I у моїй системі, вона все ще існує.


Icon^MНаскільки я знаю, «системні іконки» ніколи не створювали файл. Перейменуйте ці спеціальні папки за допомогою спеціальних піктограм (найпростіше це зробити ~/Applications, оскільки їх за замовчуванням все одно не існує), і їх значок зміниться разом із ним.
Даніель Бек

@Daniel Yup; Я вважаю, що ОП має спеціальну піктограму для своєї папки «Настільний».
NReilingh

5

Що це?

Це файл, який зберігає зображення для вашої піктограми папок. Мені вдалося створити це, лише якщо я вручну завантажив зображення в папку. У моїй системі за замовчуванням їх немає.

Як знайти файли Ікони ^ М

ПРИМІТКА:

Це не те саме, що .icnsрозширення файлу.

Якщо ви параноїзуєтесь у випадку виявлення помилкового позитиву, тоді використовуйте: ctrl+ v ctrl+ mзамість?

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

Як створити файл Icon ^ M

  1. Відкрити Finder
  2. Клацніть правою кнопкою миші на папці
  3. Натисніть і утримуйте Optionклавіатуру
  4. Виберіть Показати інспектора
  5. Перетягніть зображення до верхнього лівого значка папки.
  6. Запустити ls -lahв цьому каталозі
    1. Ви повинні побачити:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Як видалити файл Icon ^ M

Якщо вам потрібно буде вийняти його з будь-якої причини ... скажіть випадково про те, щоб його тестувати.

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

Довідка з мого поста на інше питання:

Як можна видалити порожні папки в Mac OS X?


1
+1, оскільки у прийнятій відповіді відсутнє повідомлення "Як видалити". І ні, вони не є корисними при доступі з Windows через basG minGW.
gbarry
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.