В чем разница между псевдонимом и ссылкой?

23

Я вижу, что размер псевдонима составляет 167,7 КБ, тогда как символическая ссылка составляет всего 4 КБ.

  • В чем разница между ними или какова их цель?
  • Какой из них предпочтительнее? Для случая, когда ссылка / псевдоним используется только на одном компьютере или в сети.

ADDED

http://prosseek.blogspot.com/2012/12/symbolic-link-and-alias-in-mac.html

prosseek
источник

Ответы:

25

Псевдоним содержит две части информации: уникальный идентификатор файла, на который он ссылается, и путь и имя файла, на который он ссылается.

Если вы переименуете или переместите файл, а затем создадите новый файл с указанием пути и имени файла, который изначально имел этот файл, то любой псевдоним, связанный с исходным файлом, теперь будет ссылаться на новый файл.

Однако если вы переименуете или переместите файл без его замены, а затем вызовете псевдоним, псевдоним обновляется, чтобы указывать на новый путь и имя файла, используя для этого уникальный идентификатор.

С другой стороны, символическая ссылка не содержит уникального идентификатора файла и выглядит как поврежденная, если файл переименовывается или перемещается и не заменяется файлом с таким же путем и именем файла.

Ваш выбор должен зависеть от того, какой сценарий подходит вам лучше всего.

sentinel
источник
11
Другое отличие состоит в том, что инструменты командной строки (то есть все, что использует файловые API Posix) не будут понимать псевдонимы, только символические ссылки. Оба будут работать для приложений с графическим интерфейсом.
Gordon Davisson
Как я пост в этом посте ( apple.stackexchange.com/questions/2992/... ), Я обнаружил, что действие automator работает не со ссылкой, а с псевдонимом.
prosseek
@sentinal, вы также должны добавить, что такое жесткие ссылки
Mark
1
Примечательно, что Spotlight не будет индексировать символическую ссылку. Он будет индексировать псевдоним (хотя и с более низким рейтингом.)
ocodo
2

Я довольно смущен ответом дозорного на create a new file with the path and filename that the file originally had, Кроме того, это круто, почему вы хотите это сделать?

Что ж, если вы понимаете, почему и как псевдоним работает при использовании UID и пути к файлу (хотя symlink работает только по пути), тогда вы сможете легче понять разницу и ответ с высоким рейтингом.

В файловых системах HFS и HFS + каждый файл и папка имеет уникальный постоянный идентификатор. Псевдонимы используют этот идентификатор вместе с информацией о путевых именах для поиска файлов и папок на одном и том же томе.

Начиная с Mac OS X 10.2, псевдонимы меняются местами этот порядок поиска с использованием первого пути и уникального идентификатора второго. Это означает, что если вы перемещаете файл и заменяете его файлом с одинаковым именем, псевдонимы исходного файла теперь указывают на новый файл. Аналогично, если вы перемещаете файл на том же томе (не заменяя его), псевдонимы используют уникальную идентификационную информацию для разместить файл.

Когда файл или папка перемещаются, псевдоним может обновлять либо информацию о своем пути, либо уникальную идентификационную информацию, чтобы учесть это изменение. Если файл перемещается куда-то на том же томе, псевдоним обновляет свою внутреннюю запись новыми данными о пути к файлу. Так же, если исходный файл заменяется файлом с тем же именем, но с другой уникальной идентификацией, псевдоним обновляет свою внутреннюю запись уникальной идентификацией нового файла. (Результат create a new file with the path and filename that the file originally had )

Поскольку псевдонимы изначально используют путь к файловой системе для разрешения расположения файлов, теперь они предлагают поведение, аналогичное символическим ссылкам. Символьные ссылки полагаются исключительно на информацию о пути, чтобы найти файл. Если вы перемещаете файл куда-то на том же томе, не заменяя его, символические ссылки на разрыв файла, а псевдонимы - нет. Единственный способ исправить символическую ссылку - это удалить ее и создать новую.

ссылка

Izana
источник
1
Похоже, что это комментарий к ответу, а не попытка ответить на вопрос ОП. Не могли бы вы объяснить, как ваше сообщение отвечает на оригинальный вопрос? Увидеть Как ответить для руководства по написанию хороших ответов. - Из обзора
fsb
Я ответил на вопрос OP, объяснив, как поиск по псевдониму работает на Mac, то есть, как путь к файлу и UID используются в поиске. Ответ с высоким рейтингом ответил на разницу, но не ответил, почему эта разница возникла.
Izana