Предполагая, что у нас уже есть icns-файл.Создайте временный файл ресурсов, который указывает на icns-файл:
$ echo "read 'icns' (-16455) \"Icon.icns\";" >> Icon.rsrc
Добавьте файл ресурса как значение расширенного атрибута "com.apple.ResourceFork" к файлу:
$ Rez -a Icon.rsrc -o FileName.ext
Показатьзначок файла:
$ SetFile -a C FileName.ext
Добавить файл ресурса в качестве значения расширенного атрибута "com.apple.ResourceFork" к файлу магического значка в текущей папке:
$ Rez -a Icon.rsrc -o Icon$'\r'
Показатьзначок текущей папки:
$ SetFile -a C .
Скрыть файл магического значка внутри текущей папки (нажмите ⇧⌘., чтобы показать / скрыть скрытые файлы в Finder):
$ SetFile -a V Icon$'\r'
Дополнительные сведения
Данные значка хранятся в виде значения расширенного атрибута «com.apple.ResourceFork» (команда терминала «xattr -p com.apple.ResourceFork FileName.ext» печатает значение).Для папки есть волшебный (пустой и скрытый) файл Icon$'\r'
внутри папки.Чтобы извлечь данные значков из расширенного атрибута «com.apple.ResourceFork» в файл текстового ресурса (из которого мы знаем правильный идентификатор типа icns «-16455»):
$ DeRez -only icns FileWithIcon.ext > Icon.rsrc
$ DeRez -only icns /Folder/With/Icon/Icon$'\r' > Icon.rsrc
Под командой macOS 10.13 High Sierra$ sips -i ImageFile.icns/png/jpg
генерирует ошибку --addIcon is no longer supported
.Переключатель -i
означает «--addIcon» в качестве расширенного атрибута «com.apple.ResourceFork» для самого этого файла, используя содержимое этого файла изображения.