78

Когда я 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"

Кто-нибудь имеет представление о том, что это такое?

3 ответа3

94

Что это?

Это название на самом деле Icon\r с \r является возврат каретки 0x0D Если позволить оболочке автоматически завершить путь в Терминале, она выдаст Icon^M , ^M \r .

Icon^M - это файл, который существует во всех каталогах и имеет собственный значок в Finder. Если вы измените значок каталога, например, в диалоговом окне « Получение информации », вставив изображение в значок в левом верхнем углу, будет создан файл Icon^M

Изменение значка громкости создает скрытый .VolumeIcon.icns файл 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

 Как я могу просмотреть это?

Самый простой способ получить изображение - скопировать значок из диалогового окна « Получение информации » папки, в которой он находится, в буфер обмена, а затем создать новое изображение из буфера обмена в окне «Просмотр» (Cmd-N). Это изображение icns то по умолчанию.

Его формат - JPEG 2000 в соответствии с версией XnView для Mac OS, и вы сможете открыть его с помощью этой программы. Похоже, что он не работает с другими программами, которые должны поддерживать JPEG 2000, поэтому эта информация о формате, вероятно, неверна.

10

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

Вы можете получить эти данные с помощью $ xattr -p com.apple.ResourceFork Icon? или просмотреть все расширенные атрибуты с помощью $ xattr -l Icon?

В Snow Leopard, по крайней мере, они, по-видимому, были удалены для системных значков (в случае ~/Desktop/ этот значок будет виден при просмотре вашего домашнего каталога в виде значков), но для двух пользовательских значков каталогов, которые я есть в моей системе, он все еще существует.

2

Что это?

Это файл, в котором хранится изображение значка вашей папки. Я смог создать его только в том случае, если вручную загрузил изображение в папку. У меня их нет в моей системе по умолчанию.

Как найти файлы Icon ^ M

НОТА:

Это не то же самое, что расширение файла .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. Нажмите и удерживайте опцию на клавиатуре
  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?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .