Символические и жесткие ссылки в linux. команда ln

Наслаждайтесь свободным пространством

Мы протестировали две популярные игры, Battlefield V и Apex Legends, и не столкнулись с какими-либо сбоями или ошибками во время игры. Проверьте свободное место для каждой игры ниже.

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

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

Анализ файлов игры

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

Шаг 1: Перейдите к значку TreeSize на рабочем столе или в меню «Пуск» и запустите его.

Шаг 2: Когда откроется TreeSize, нажмите «Выбрать каталог». Во вновь открывшемся окне перейдите к расположению файлов игры и выберите основную папку, содержащую все файлы.

Шаг 3: TreeSize покажет вам все файлы и подпапки внутри основной папки в порядке возрастания их размера. Нам нужно сузить список файлов / папок, которые занимают больше всего места. К сожалению, издатели игр не раскрывают, какие файлы или папки служат для какой цели. В Интернете также нет справочника или информации о том же.

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

Папки внутри красного поля соответствуют однопользовательской кампании, обозначенной суффиксом «sp_». Точно так же папка внутри зеленого поля содержит файлы для многопользовательской карты Роттердам в Battlefield V.

На приведенном выше снимке экрана вы можете увидеть файлы, соответствующие названиям однопользовательских миссий и многопользовательским картам в Battlefield V. Я переместил файлы, соответствующие однопользовательским миссиям, на более медленный жесткий диск, поскольку я редко играю в одиночную игру.

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

Прежде чем мы пойдем дальше, сделайте снимок экрана с исходным макетом папки с игрой, как показано в TreeSize, чтобы в случае, если что-то пойдет не так, вы знаете, какой файл куда попадает.

Символьные ссылки или Symbolic Link

В отличие от жестких, символьные ссылки или Symbolic Link обладают большей гибкостью. Предназначаются они для удобной организации объектов файловой системы, а также оптимизации производительности приложений на SSD-дисках. Ссылки этого типа могут создаваться и для файлов, и для каталогов, в том числе сетевых; они поддерживают связь между томами, используя относительные пути. Принципом работы символьная ссылка напоминает обычный ярлык.

Использование Symbolic Link может иметь смысл при необходимости получения доступа к одному файлу из разных мест. Создаются символьные ссылки командой mklink:

mklink D:file2.txt %userprofile%desktopfile1.txt

Первым после команды идет путь к символьной ссылке, вторым – путь к оригинальному файлу. Если нужно создать символьную ссылку для каталога, используется та же команда mklink, но с ключом d.

mklink d D:folder2 %userprofile%desktopfolder1

Внешне символьные ссылки почти ничем не отличаются от обычных ярлыков, за исключением пометки symlink в свойствах файла или даты создания вместо пути к оригиналу в каталоге. Также если вы удалите оригинал, а затем попробуете перейти по символьной ссылке, то она просто не откроется, тогда как при попытке открыть битый ярлык появится сообщение о недоступности оригинального файла. Но самое главное отличие от ярлыков в том, что при работе с символьными ссылками Windows по-прежнему будет считать, что вы работаете с оригинальным объектом.

На этом пока все. В следующий раз мы рассмотрим способ применения символьных ссылок на более конкретных примерах, а заодно узнаем, какие используются утилиты для работы с жесткими и символьными ссылками.

Жесткие ссылки или Hard Link

На самом деле дублирование совсем необязательно должно иметь место. То, что вы видите и определяете как реальный файл, в действительности может оказаться Hard Link — ссылкой особого типа, используемой для формирования путей к какому-нибудь файлу. Такие ссылки называются жесткими. Любопытно, что файл в NTFS может иметь до 1023 жестких ссылок, и все они будут выглядеть как его точная копия за исключением имени и размера. Как и ярлыки, жесткие ссылки могут иметь разные имена.

Зато содержимое и атрибуты у них общие, и если вы измените их в одной такой ссылке, то изменения коснуться всех остальных ссылок, даже тех, которые были удалены в Корзину. Что касается размера жестких ссылок, то это всего лишь одна видимость. Не имеющие практически никакого веса, ссылки этого типа определяются Проводником как имеющие реальный вес файлы, что иногда вызывает у пользователей немало вопросов и затруднений при ручной очистке ряда системных каталогов, того же Winsxs. Есть у Hard Link и свои ограничения. Так, создавать жесткие ссылки можно только на файлы и только в пределах одного тома.

К счастью, сталкиваться с жесткими ссылками рядовым пользователям приходится нечасто, иначе это наверняка бы привело к неразберихе и серьезным проблемам. Описывать все особенности поведения жестких ссылок мы не будем, так как это заняло бы слишком много времени. Вместо этого предлагаем вам создать Hard Link самостоятельно и поэкспериментировать с ними. Вот вам пример. Создайте на рабочем столе простой текстовый файл file1.txt и что-нибудь напишите в него. Теперь откройте командную строку и создайте на него пару жестких ссылок с именами file2.txt и file2.txt. Вот так:

fsutil hardlink create file2.txt file1.txt

fsutil hardlink create file3.txt file1.txt

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

В общем, развлекайтесь. Уверен, что вы найдете для себя немало интересного.

Поиск неработающих символических ссылок

В большинстве современных версий find есть опция xtype (расширенный тип), что упрощает поиск неработающих символических ссылок. Мы будем использовать флаг l с xtype, чтобы указать ему искать ссылки. Использование find и xtype следующим образом, без каких-либо других флагов типа, заставляет xtype возвращать неработающие ссылки:

find . -xtype l

Выполнение команды в нашем тестовом домашнем каталоге обнаруживает довольно много неработающих символических ссылок

Обратите внимание, что поиск по умолчанию является рекурсивным, поэтому он автоматически выполняет поиск во всех подкаталогах

Как мы и ожидали, в списке отображается символическая ссылка «hello», которую мы специально разорвали. Одна из других символических ссылок связана с браузером Firefox, а остальные связаны со снимками.

Если мы направим вывод через wc с параметром -l (lines), мы сможем подсчитать строки, что аналогично подсчету неработающих символических ссылок.

Набираем следующее:

find . -xtype l | wc -l

Нам сообщили, что у нас 24 неработающих символических ссылки, ни на что не указывающих.

Как ускорить свою работу с помощью ссылок

Раскрывая этот пример, допустим, что у вас утилита Process Explorer лежит в папке D:\Sysinternals. Можно назначить ей псевдоним pe одной командой, используя символическую или жесткую ссылку на выбор.

Вы уже видели, как создает ссылки fsutil. Давайте теперь сделаем это командой mklink.

:: Символическая ссылка на файл
mklink D:\MyTools\pe.exe D:\Sysinternals\procexp.exe
:: Жесткая ссылка на файл
mklink /h D:\MyTools\pe1.exe D:\Sysinternals\procexp.exe

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

В отдельном столбце проводника я отобразил , чтобы показать, что буква L обозначает символическую ссылку. Вы также можете добавить столбец «Цель ссылки», чтобы посмотреть, куда она ведет. Этот рисунок также хорошо подчеркивает разницу между жесткими и символическими ссылками. Первые являются полноценными файлами, а вторые больше похожи на ярлыки.

Из своей практики я уже делился примером укрощения программы, в которой был зашит абсолютный путь к одной из папок профиля. Кстати, пример резонирует с причиной наличия  блокнота в каждой из системных папок. А недавно я решил перенести одну папку в другое место. Поскольку ранее я создал на нее ссылки в реестре, символическая ссылка избавила меня от необходимости выполнять поиск и замену пути в нем.

Найти, просмотреть, а затем удалить

Прежде чем вы броситесь удалять все неработающие символические ссылки, просмотрите результаты команды find. Посмотрите, есть ли веская причина для неработающих символических ссылок.

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

Также возможно, что явно неработающая символическая ссылка используется как что-то еще, например, индикатор блокировки файла или другой индикатор перехода / отказа. Firefox делает это; это первая символическая ссылка в нашем списке. Однако Firefox не используется на нашей тестовой машине, поэтому его можно безопасно удалить.

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

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

Когда вы исправите неработающие ссылки, которые необходимо сохранить, повторите команду, чтобы выполнить поиск. В этом случае фиксированные символические ссылки должны отсутствовать в результатах поиска.

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

Битые символьные ссылки

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

Для наглядной демонстрации такого поведения я специально создал символьную ссылку hello в каталоге ~/Документы:

Видно, что ссылка указывает на программу под названием ravesli в каталоге /bin. Если мы запустим символьную ссылку, то запустится связанная с ней программа:

Далее обратимся к программе напрямую:

Как и ожидалось, мы получили тот же результат. А теперь давайте удалим файл программы:

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

Обратите внимание, что если мы снова попытаемся запустить символьную ссылку, то получим ошибку ссылки, а не объекта, на который указывает ссылка:

Поиск битых символьных ссылок (команда find)

В большинстве современных версий команды есть опция , которая упрощает поиск битых символьных ссылок. Использование команды с опцией и флагом (link) позволит искать и возвращать битые ссылки:

Стоит отметить, что по умолчанию поиск является рекурсивным, поэтому он автоматически выполняется для всех подкаталогов.

Если мы соединим вышеприведенную команду с командой (lines), то сможем подсчитать строки, что аналогично подсчету битых символьных ссылок:

Как вы можете видеть, у нас есть 1 битая символьная ссылка.

Анализ битых символьных ссылок

Прежде чем удалять все битые символьные ссылки, внимательно изучите результаты команды . Подумайте, есть ли веская причина для какой-либо из найденных символьных ссылок быть битой.

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

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

Битая символьная ссылка может быть признаком неудачной установки программного обеспечения. В этом случае вместо удаления символьной ссылки вам следует либо исправить её вручную, либо повторить установку. Когда вы исправите необходимые битые ссылки, то повторите команду поиска битых ссылок. Если всё сделано правильно, исправленные символьные ссылки не должны будут больше отображаться в результатах поиска.

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

Удаление битых символьных ссылок

Опция (execute) запускает некоторую команду, которая будет выполняться на результатах поиска, полученных от команды . Мы собираемся использовать команду для удаления каждой поврежденной символьной ссылки. Часть заменяется именем битой символьной ссылки по мере обнаружения каждой из них с помощью команды .

Мы должны использовать точку с запятой (), чтобы завершить список команд, которые мы хотим запустить при помощи . Обратная косая черта () используется для экранирования точки с запятой, благодаря чему она будет рассматривается как часть команды :

Как вы можете видеть, команда была выполнена без каких-либо признаков того, что что-то произошло. Чтобы убедиться, что битые ссылки удалены, мы повторяем команду для их поиска:

Нет никаких совпадающих результатов, что означает, что битые символьные ссылки были удалены.

Обзор

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

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

Символьные ссылки работают прозрачно для многих операций: программы, которые читают или записывают файлы, названные символьной ссылкой, будут вести себя так, как если бы они работали непосредственно с целевым файлом. Однако они имеют эффект изменения иерархической файловой системы с дерева на ориентированный граф, что может иметь последствия для таких простых операций, как определение текущего каталога процесса. Даже стандарт Unix для перехода к родительскому каталогу каталога больше не работает надежно перед лицом символических ссылок. Некоторые оболочки эвристически пытаются поддержать иллюзию древовидной иерархии, но когда они это делают, это заставляет их выдавать разные результаты от других программ, которые манипулируют именами путей без такой эвристики, полагаясь вместо этого на операционную систему. Таким образом, программы, которым необходимо обрабатывать символические ссылки специально (например, оболочки и утилиты резервного копирования), должны идентифицировать их и управлять ими напрямую.

Некоторые дистрибутивы Unix, а также Linux широко используют символические ссылки, чтобы изменить порядок иерархии файловой системы . Это достигается с помощью нескольких механизмов, таких как вариантные контекстно-зависимые символические ссылки. Это дает возможность создать более интуитивно понятное или ориентированное на конкретное приложение дерево каталогов и реорганизовать систему без изменения основного набора системных функций и утилит.

СПРАВКА, или что такое ссылка для Windows?

Ссылка – это цепочка символов, которая указывает/перенаправляет на объект, реально или физически существующий. Нужно различать постоянные (фиксированные, жёсткие) и гибкие (временные, символьные ) ссылки. Первые – когда, файл указывает на файл. Во втором случае – а это как раз наш – виртуальная папка указывает на целевую. Кроме всего, есть ещё и связующие ссылки, которые по сути являются теми же прямыми, но соединяют не файлы, а, используя различные переходы, папки и директории. При этом все папки остаются на прежних местах. Подробнее о типах ссылок в NTFS-системе – в конце статьи.

Если вы перешли на современную платформу со времён ещё Windows XP, вы можете вспомнить, что все пользовательские данные тогда хранились в одной только папке – C:Documents and Settings. Она была отправной точкой для остальных папок и файлов. Со времён Vista базовых папок стало две: С:Пользователи (данные программ и настроек для конкретной учётной записи) и C:ProgramData (данные для всей системы в целом, которые разделяли все установленные в Windows Vista/7 программы и приложения: и встроенные и со стороны). Однако, с целью обеспечения обратной совместимости с приложениями для предыдущих поколений Windows, папку C:Documents and Settings … решили пока оставить. Вот так: физически её давно уже не существует, однако в проводнике она отображена. И успешно содержит в себе две указанные выше папки нового поколения Windows

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

А вот она в Windows 7:

загляните внутрь папки Documents and Settings: ничего не замечаете?

А в Windows 10 этой папки нет? Вскроем скрытые файлы и папки:

Да нет, всё на месте:

Обратите внимание на Cвойства папки. Если вы не проводили дополнительный операций с разрешениями для папок и файлов, папку Documents and Setting вы вообще не сможете открыть

И всё по той же причине: её просто не существует, но “старым” службам и программам она необходима по определению. Так, Windows сохранила в своё время за пользователями право использовать устаревшие, но привычные (и, тем более, оплаченные по лицензии) программы. Особенно это касается пакета Microsoft Office. А та, как вы уже поняли, без папки обойтись не могла.

Симлинки против псевдонимов в macOS

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

Разница в том, что псевдоним также помечает связанный объект с идентификатором, называемым inode (индексный узел). Этот идентификатор уникален для объекта и следует за ним по всей файловой системе.

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

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

Не можете определить разницу между псевдонимом и символической ссылкой, поскольку вы удалили тег псевдонима из имени файла псевдонима?

Откройте инспектор файлов или панель «Информация» для каждого ярлыка и посмотрите размер файла в разделе «Общие». Если это говорит (ноль байтов на диске), вы имеете дело с символической ссылкой.

Символьные ссылки (в текущей папке) также проявятся при использовании этой команды терминала:

ls -la

Команда работает и в Linux, и вы увидите символическую ссылку, указывающую на местоположение исходного объекта.

Симлинки лучше, чем ярлыки

Поначалу символические ссылки могут показаться запутанными, но если вы потратите время на их понимание, вы поймете, что в конце концов их довольно просто использовать!

Что такое символическая ссылка?

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

Конечно, нажатие на ярлык любого типа открывает связанный объект, но то, что происходит под капотом, в обоих случаях различно, как мы увидим далее.

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

В macOS вы получаете подтверждение в виде сообщения «файл существует», которое появляется, когда вы пытаетесь создать символическую ссылку в том же месте, что и исходный объект. Даже если вы попытаетесь переместить символическую ссылку в то же место после ее создания в другом месте, она будет переименована в копию.

Симлинки против стандартных ярлыков

Допустим, у вас есть определенная папка на жестком диске, которую вы хотите синхронизировать с Dropbox, не перемещая саму папку в Dropbox.

В этом случае создание ярлыка для папки в Dropbox не имеет смысла. Ярлык будет работать на устройстве, на котором вы его создали. Dropbox также синхронизирует ярлык. Но синхронизированный файл ярлыков недействителен, когда вы обращаетесь к нему с другого компьютера, т.е. он никуда не ведет.

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

Имейте в виду, что, будь то обычный ярлык или символическая ссылка, его удаление никак не повлияет на исходный объект.

Что такое ссылка на файл в Linux

Ссылка на файл в Linux — это указатель на файл. Если проводить аналогию с Windows, то ссылки чем-то похожи на ярлыки. То есть вы создаете ссылку, которая указывает на какой-либо файл или директорию, и можете разместить эту ссылку в другом каталоге. Обращаясь к такой ссылке, вы будете обращаться к настоящему файлу или каталогу.

Ссылки в Linux бывают двух типов: символические и жесткие. Не смотря на то, что оба типа называются ссылками, они имеют существенные отличия друг от друга

Поэтому очень важно понимать, как создавать и использовать тот или иной тип ссылок

Что такое символические ссылки

Символическая ссылка (symbolic link) — это специальный файл, который является ссылкой на другой файл или каталог (их еще называют целевым файлом, целевым каталогом).

Символические ссылки также называют символьными, мягкими ссылками (soft links) или сим-ссылками (sym-link).

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

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

Возвращаясь к аналогии с ярлыками в Windows, символические ссылки это своего рода ярлыки на файлы. Можно создавать несколько символических ссылок на один файл и эти ссылки могут иметь разные имена.

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

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

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

Схематично отношение между файлом, символической ссылкой и данными, которые хранятся в файле, можно показать следующим образом:

Что такое жесткие ссылки

Жесткая ссылка (hard link) является своего рода синонимом для существующего файла. Когда вы создаете жесткую ссылку, создается дополнительный указатель на существующий файл, но не копия файла.

Жесткие ссылки выглядят в файловой структуре как еще один файл. Если вы создаете жесткую ссылку в том же каталоге, где находится целевой файл, то они должны иметь разные имена. Жесткая ссылка на файл должна находится в той же файловой системе, где и другие жесткие ссылки на этот файл.

В Linux каждый файл имеет уникальный идентификатор — индексный дескриптор (inode). Это число, которое однозначно идентифицирует файл в файловой системе. Жесткая ссылка и файл, для которой она создавалась имеют одинаковые inode. Поэтому жесткая ссылка имеет те же права доступа, владельца и время последней модификации, что и целевой файл. Различаются только имена файлов. Фактически жесткая ссылка это еще одно имя для файла.

Жесткие ссылки нельзя создавать для директорий.

Жесткая ссылка не может указывать на несуществующий файл.

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

Схематично отношение между исходным файлом, жесткой ссылкой и данными можно показать следующей схемой:

Отличия символических ссылок от жестких

Кратко подведем итог, написанного выше.

Символическая ссылка:

  • Указывает на целевой файл или каталог. Фактически является небольшим файлом, содержащим путь до целевого файла.
  • Не содержит внутри себя содержимого самого файла. Содержит путь к целевому файлу.
  • Имеет собственные права доступа, которые не распространяются на целевой файл.
  • Удаление / переименование / перемещение целевого файла не обновляет автоматически ссылку. Ссылка начинает указывать на несуществующий файл, становится неработающей.
  • Изменение прав доступа у целевого файла не обновляет права доступа у ссылки.
  • Может быть создана для директории.
  • Ссылка и целевой файл имеют разные файловые индексы (inode) в файловой системе.
  • Может указывать на несуществующий файл.
  • Символическая ссылка может использовать относительный путь до целевого файла.

Жесткая ссылка:

  • Является своего рода еще одним именем на файл.
  • Не может указывать на директорию.
  • Нельзя создавать жесткие ссылки между файлами разных файловых систем.
  • Не может указывать на несуществующий файл.
  • Жесткая ссылка и файл, для которого она создавалась, имеют одинаковые индексы (inode) в файловой системе.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: