В классической системе Mac OS 7 и более поздних версиях, а также в macOS псевдоним — это небольшой файл, который представляет другой объект в локальной, удаленной или съемной [1] файловой системе и обеспечивает динамическую ссылку на него; целевой объект можно переместить или переименовать, а псевдоним по-прежнему будет ссылаться на него (если исходный файл не будет воссоздан; такой псевдоним неоднозначен, и способ его разрешения зависит от версии macOS). В Windows аналогичную функцию выполняет «ярлык» — файл с расширением .lnk.
Она похожа на символическую ссылку Unix , но отличается тем, что работает, даже если целевой файл перемещается в другое место на том же диске (в этом случае она действует как жесткая ссылка , но источник и цель ссылки могут находиться на другом месте). разные файловые системы, а целью ссылки может быть каталог). Будучи потомком BSD , macOS также поддерживает символические (и жесткие) ссылки Unix.
Псевдоним действует как замена любому объекту в файловой системе, например документу , приложению , папке , жесткому диску , сетевому ресурсу , съемному носителю или принтеру . При двойном щелчке компьютер будет действовать так же, как если бы исходный файл был дважды щелкнут. Аналогично, выбор файла псевдонима в диалоговом окне «Открыть файл» приведет к открытию исходного файла. Цель псевдонима — помочь пользователю управлять большим количеством файлов, предоставляя альтернативные способы доступа к ним без необходимости копирования самих файлов. Хотя типичный псевдоним в классической Mac OS был небольшим, от 1 до 5 КБ, в macOS он может быть довольно большим, более 5 МБ (5000 КБ) для псевдонима папки.
Псевдоним — это динамическая ссылка на объект. Оригинал можно переместить в другое место в той же файловой системе , не разрывая ссылку. Операционная система хранит несколько фрагментов информации об оригинале в ответвлении ресурса файла псевдонима. Примеры информации, используемой для поиска оригинала:
Поскольку любое из этих свойств может измениться без ведома компьютера в результате активности пользователя, для поиска наиболее вероятной цели используются различные алгоритмы поиска. Эта отказоустойчивость отличает псевдоним от аналогичных функций в некоторых других операционных системах, таких как символическая ссылка Unix или ярлык Microsoft Windows , за счет повышенной сложности и непредсказуемости. Например, приложение можно переместить из одного каталога в другой в той же файловой системе, но существующий псевдоним все равно будет запускать то же приложение при двойном щелчке.
Может возникнуть вопрос, как должен работать псевдоним, если файл перемещается, а затем создается файл с тем же именем, что и исходный перемещенный файл, поскольку псевдоним можно использовать для определения местонахождения как исходного имени, так и нового местоположения файла. исходный файл. При использовании символических ссылок ссылка однозначна (мягкие ссылки относятся к новому файлу, жесткие ссылки — к оригиналу). Однако до Mac OS X 10.2 такой неоднозначный псевдоним всегда находил исходный перемещенный файл, а не воссозданный файл. В Mac OS X 10.2 и более поздних версиях новый файл обнаруживается, что соответствует поведению символических ссылок [1]. Приложения macOS могут программно использовать старое поведение, если это необходимо.
Псевдонимы по своему действию аналогичны теням в графической оболочке Workplace Shell операционной системы OS/2 .
В системах с 7 по Mac OS 9 псевдонимы визуально отличались для пользователя тем, что имена их файлов были выделены курсивом. Чтобы использовать языки, в которых нет курсива (например, японский ), в Mac OS 8.5 был добавлен еще один отличительный знак — значок со «стрелкой псевдонима» — черной стрелкой с небольшой белой рамкой — аналогичной той, которая используется для ярлыков в Microsoft. Окна.
В macOS имена файлов псевдонимов не выделяются курсивом, но значок стрелки остается.
Файлы псевдонимов в macOS начинаются с магического числа 62 6F 6F 6B 00 00 00 00 6D 61 72 6B 00 00 00 00
в ASCII book␀␀␀␀mark␀␀␀␀
( ␀, обозначающего нулевой символ ).
Сообщалось, что после магического числа псевдоним содержит набор записей, каждая запись имеет длину 150 байт и состоит из полей, показанных ниже (все целые числа имеют обратный порядок байтов). [2] Однако файлы псевдонимов намного больше, чем можно было бы объяснить, и содержат другую информацию, по крайней мере, включая значки. [3] [4]
Следующее предназначено для использования с диспетчером ресурсов псевдонимов Apple.
Код Java для пометки файла псевдонима
// Эта функция проверяет, соответствует ли файл магическому номеру псевдонима. public static boolean checkForMacAliasFile ( File inputFile ) выдает FileNotFoundException , IOException { // Псевдонимами могут быть только файлы. // Не тестировать каталоги; они будут ложными. if ( inputFile . isFile ()) { байт [] закладка = новый байт [] { 0x62 , 0x6F , 0x6F , 0x6B , 0x00 , 0x00 , 0x00 , 0x00 , 0x6D , 0x61 , 0x72 , 0x6B , 0x00 , 0x00 , 0x00 , 0x00 }; длинная длина = входной файл . длина (); if ( длина > 16 ) { байт [] результат = новый байт [ 16 ] ; FileInputStream fis = новый FileInputStream ( inputFile ); фис . прочитать ( результат ); фис . закрывать (); вернуть массивы . равно ( результат , закладка ); } } вернуть ложь ; }
Здесь есть репозиторий GitHub с рабочим кодом C++.
В Системе 7 единственным способом создать псевдоним было выбрать оригинал и выбрать «Создать псевдоним» в меню «Файл». Псевдоним с тем же именем и добавленным «псевдонимом» будет создан в той же папке. В более поздних версиях появилась возможность создавать псевдонимы путем перетаскивания , удерживая нажатой клавиши-модификаторы команд и опций.
В Mac OS 8.5 добавлена возможность повторного подключения алиасов, которые были сломаны по той или иной причине (когда простые алгоритмы поиска не смогли найти надежную замену). Это было сделано путем выбора новой цели через стандартное диалоговое окно «Открыть файл».
В Mac OS 8.5 были добавлены параметры команды — опция перетаскивания объекта в Finder для создания псевдонима в этом месте. Именно здесь в систему был добавлен псевдоним курсора . Курсор повторяет внешний вид курсора «Создать ярлык» в системах Windows.
API Alias Manager является частью Carbon , которая позволяет разработчикам создавать псевдонимы и получать доступ к файлу с псевдонимом. [5]
Mac OS X 10.6 представила API закладок для Cocoa как набор методов NSURL
и функций для CFURL
. [6] [7] В Mac OS X 10.7.3 API был расширен для песочницы приложения с помощью закладок с ограниченной областью безопасности, которые добавляют разрешения безопасности к псевдонимам для каждого приложения или для каждого документа. [8]
В Mac OS X 10.8 API Alias Manager был официально признан устаревшим в пользу API закладок. [5]
Unix и подобные операционные системы предоставляют две функции, очень похожие на псевдонимы macOS: символические ссылки и жесткие ссылки . При использовании macOS Finder ссылки отображаются и обрабатываются во многом как псевдонимы macOS и даже имеют идентичный атрибут «Вид». Однако при использовании командной строки оболочки псевдонимы macOS не распознаются: например, вы не можете использовать команду cd с именем файла псевдонима. Это связано с тем, что псевдоним реализуется как файл на диске, который должен интерпретироваться API, в то время как ссылки реализуются внутри файловой системы и, таким образом, функционируют на любом уровне ОС.
В настоящее время не существует предустановленной команды для разрешения псевдонима пути к файлу или каталогу, на который он ссылается. Однако свободно доступная программа на языке C использует API-интерфейсы Mac Carbon для выполнения этой задачи. [9] Учитывая это, такие команды, как cd, можно настроить для проверки псевдонимов и обработки их как символических или жестких ссылок.