Жёсткая ссылка

Поделись знанием:
(перенаправлено с «Ссылка жёсткая»)
Перейти к: навигация, поиск

Жёсткой ссылкой (англ. hard link) в UFS-совместимых файловых системах называется структурная составляющая файла — описывающий его элемент каталога.

Файл в UFS представляет собой структуру блоков данных на диске, имеющую уникальный индексный дескриптор (или i-node) и набор атрибутов (метаинформацию). Жёсткая ссылка связывает индексный дескриптор файла с каталогом и дает ему имя.





Свойства

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

Количество жёстких ссылок файла сохраняется на уровне файловой системы в метаинформации. Файлы с нулевым количеством ссылок перестают существовать для системы и, со временем, будут перезаписаны физически. В файловых системах UNIX-подобных ОС и в NTFS при создании файла на него автоматически создаётся одна жёсткая ссылка (на то место файловой системы, в котором файл создаётся). Дополнительную ссылку в UNIX можно создать с помощью команды ln. Все ссылки одного файла равноправны и неотличимы друг от друга — нельзя сказать, что файл существует в таком-то каталоге, а в других местах есть лишь их копии. Удаление ссылки приводит к удалению файла лишь в том случае, когда это была последняя ссылка, любая из созданных, то есть все остальные жёсткие ссылки на него уже удалены

Большинство программ не различают жёсткие ссылки одного файла, даже системный вызов для удаления файла в UNIX называется unlink (англ.), так как он предназначен для удаления жёсткой ссылки файла.

В связи с тем, что жёсткие ссылки ссылаются на индексный дескриптор, уникальный в пределах дискового раздела, создание жёсткой ссылки на файл в каталоге другого раздела невозможно. Для преодоления этого ограничения используются символьные (символические) ссылки.

Копирование файлов с жёсткими ссылками

При простом копировании файлов жёсткие ссылки разыменовываются, т.е. каждая ссылка превращается в самостоятельный файл. Для преодоления этого ограничения в UNIX-подобных системах используется конвейер из команд find и cpio:

(в каталоге-источнике)

find -depth -print0 | cpio -p -v -d --null <каталог назначения>

(Ключ -depth заставляет find выводить имена каталогов после их содержимого, благодаря чему команда cpio сможет последовательно воссоздать дерево файлов. Ключ -print0 сохраняет пробелы в именах файлов, меняя разделитель строк на символ NULL (код 0x0). Ключи cpio: -p — режим конвейера, -d — создание каталогов, -v — отображение хода работы, --null — указывает на то, что разделителем строк выступает нулевой символ.)

Другие файловые системы

Жёсткие ссылки поддерживаются в файловой системе NTFS (начиная с Windows NT4[1]). Жёсткая ссылка может создаваться только в пределах одного логического раздела и только для файлов. В операционных системах Windows нет возможности создать жёсткую ссылку на каталог. Однако похожего эффекта можно добиться, используя точку соединения NTFS.

Команда для создания жёсткой ссылки в Windows:

fsutil hardlink create новая_ссылка источник

Пример:

fsutil hardlink create "C:\Distr\Installer-2.exe" "C:\Distr\Installer.exe"

Обратите внимание: существующее имя файла идёт вторым, а создаваемое — первым.

Также, начиная с Vista, в Windows появилась внутренняя команда mklink, позволяющая создавать жёсткие и мягкие ссылки, а также точки соединения. Команда для создания жёсткой ссылки на файл в операционной системе Windows 7:

mklink /h новая_ссылка источник

Пример:

mklink /h "C:\Distr\Installer-2.exe" "C:\Distr\Installer.exe"

Утилиты для работы с жёсткими ссылками в Windows

  • NTFS Link[2] — дополнение к оболочке Windows, позволяющее создавать жёсткие и символьные ссылки на томах NTFS. Существующие символьные ссылки помечаются в Проводнике дополнительным маленьким значком. Имеется исходный код, написан на языке Pascal.
  • Link Shell Extension[3] — ещё одно дополнение к оболочке Windows. Последняя версия проверена и работает в Windows 10. Существующие жёсткие и символьные ссылки помечаются в Проводнике дополнительным маленьким значком. Файлы и каталоги с существующими ссылками имеют дополнительную закладку в "Свойствах" со списком всех жёстких ссылок и целевым местом символической ссылки.
  • NTFS Links[4] — плагин для файлового менеджера Total Commander, позволяющий создавать жёсткие и символьные ссылки на томах NTFS из Total Commander.
  • CreateHardLink[5] — ещё один плагин для Total Commander, позволяющий создавать жёсткие ссылки на томах NTFS из этой программы.
  • NTLinks[6] — контекстный плагин для Total Commander, отображающий информацию об NTFS-ссылках.
  • FAR Manager — файловый менеджер, позволяющий работать со ссылками на NTFS-разделах (создавать, просматривать, удалять жёсткие и символьные ссылки с помощью команды Alt+F6)
  • Duplicate & Same Files Searcher[7] — утилита для Windows, позволяющая искать на жёстком диске одинаковые файлы и заменять их жёсткими ссылками NTFS. Утилита также находит существующие на диске жёсткие ссылки на один и тот же файл. Работает в Windows 2000/XP/Vista/7.
  • FindDupe[8] — простая Windows-утилита для командной строки, позволяющая искать файлы и заменять их жёсткими ссылками NTFS.
  • Duplicate File Hard Linker[9] — ещё одна простая Windows-утилита для командной строки, позволяющая искать файлы и заменять их жёсткими ссылками NTFS.
  • KillCopy — утилита для ускоренного копирования в Windows, позволяет вместо копирования создать жёсткую ссылку.
  • Junction[10] — Windows-утилита для командной строки от Марка Руссиновича, позволяет создавать и удалять точки соединения NTFS для файлов и каталогов.
  • NTFS Links[11] — дополнение к оболочке Windows, схожее по функциональности с первым в списке дополнением.

Напишите отзыв о статье "Жёсткая ссылка"

Примечания

  1. [schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html Link Shell Extension]. [www.webcitation.org/61BaQabun Архивировано из первоисточника 25 августа 2011].
  2. [elsdoerfer.name/ntfslink elsdoerfer.name NTFS-Link]
  3. [schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html Link Shell Extension]
  4. [wincmd.ru/plugring/ntfslinks.html NTFS Links]
  5. [wincmd.ru/plugring/CreateHardLink.html CreateHardLink]
  6. [wincmd.ru/plugring/ntlinks.html NTLinks]
  7. [malich.ru/duplicate_searcher.aspx Duplicate & Same Files Searcher]
  8. [www.sentex.net/~mwandel/finddupe/ FindDupe]
  9. [www.heise.de/software/download/duplicate_file_hard_linker/22518 Duplicate File Hard Linker]
  10. [technet.microsoft.com/ru-ru/sysinternals/bb896768.aspx Junction]
  11. [alax.info/blog/ntfslinks alax.info NTFS Links]

См. также

Ссылки

  • [www.opennet.ru/base/sys/freebsd_fs_mount.txt.html Работа с дисками и файловыми системами в FreeBSD], Алексей Федорчук, перепечатка цикла статей из iXBT (см. разделы [www.ixbt.com/soft/freebsd04.shtml FreeBSD: физика файловой системы], [www.ixbt.com/soft/freebsd05.shtml Файловая система FreeBSD: иерархия и монтирование])
  • [www.computerra.ru/gid/rtfm/system/38545/ Секреты NTFS. Жесткие ссылки], Компьютерра OnLine

Отрывок, характеризующий Жёсткая ссылка

– Нет, постой, Пьер. Княгиня так добра, что не захочет лишить меня удовольствия провести с тобою вечер.
– Нет, он только о себе думает, – проговорила княгиня, не удерживая сердитых слез.
– Lise, – сказал сухо князь Андрей, поднимая тон на ту степень, которая показывает, что терпение истощено.
Вдруг сердитое беличье выражение красивого личика княгини заменилось привлекательным и возбуждающим сострадание выражением страха; она исподлобья взглянула своими прекрасными глазками на мужа, и на лице ее показалось то робкое и признающееся выражение, какое бывает у собаки, быстро, но слабо помахивающей опущенным хвостом.
– Mon Dieu, mon Dieu! [Боже мой, Боже мой!] – проговорила княгиня и, подобрав одною рукой складку платья, подошла к мужу и поцеловала его в лоб.
– Bonsoir, Lise, [Доброй ночи, Лиза,] – сказал князь Андрей, вставая и учтиво, как у посторонней, целуя руку.


Друзья молчали. Ни тот, ни другой не начинал говорить. Пьер поглядывал на князя Андрея, князь Андрей потирал себе лоб своею маленькою рукой.
– Пойдем ужинать, – сказал он со вздохом, вставая и направляясь к двери.
Они вошли в изящно, заново, богато отделанную столовую. Всё, от салфеток до серебра, фаянса и хрусталя, носило на себе тот особенный отпечаток новизны, который бывает в хозяйстве молодых супругов. В середине ужина князь Андрей облокотился и, как человек, давно имеющий что нибудь на сердце и вдруг решающийся высказаться, с выражением нервного раздражения, в каком Пьер никогда еще не видал своего приятеля, начал говорить:
– Никогда, никогда не женись, мой друг; вот тебе мой совет: не женись до тех пор, пока ты не скажешь себе, что ты сделал всё, что мог, и до тех пор, пока ты не перестанешь любить ту женщину, какую ты выбрал, пока ты не увидишь ее ясно; а то ты ошибешься жестоко и непоправимо. Женись стариком, никуда негодным… А то пропадет всё, что в тебе есть хорошего и высокого. Всё истратится по мелочам. Да, да, да! Не смотри на меня с таким удивлением. Ежели ты ждешь от себя чего нибудь впереди, то на каждом шагу ты будешь чувствовать, что для тебя всё кончено, всё закрыто, кроме гостиной, где ты будешь стоять на одной доске с придворным лакеем и идиотом… Да что!…
Он энергически махнул рукой.
Пьер снял очки, отчего лицо его изменилось, еще более выказывая доброту, и удивленно глядел на друга.
– Моя жена, – продолжал князь Андрей, – прекрасная женщина. Это одна из тех редких женщин, с которою можно быть покойным за свою честь; но, Боже мой, чего бы я не дал теперь, чтобы не быть женатым! Это я тебе одному и первому говорю, потому что я люблю тебя.
Князь Андрей, говоря это, был еще менее похож, чем прежде, на того Болконского, который развалившись сидел в креслах Анны Павловны и сквозь зубы, щурясь, говорил французские фразы. Его сухое лицо всё дрожало нервическим оживлением каждого мускула; глаза, в которых прежде казался потушенным огонь жизни, теперь блестели лучистым, ярким блеском. Видно было, что чем безжизненнее казался он в обыкновенное время, тем энергичнее был он в эти минуты почти болезненного раздражения.
– Ты не понимаешь, отчего я это говорю, – продолжал он. – Ведь это целая история жизни. Ты говоришь, Бонапарте и его карьера, – сказал он, хотя Пьер и не говорил про Бонапарте. – Ты говоришь Бонапарте; но Бонапарте, когда он работал, шаг за шагом шел к цели, он был свободен, у него ничего не было, кроме его цели, – и он достиг ее. Но свяжи себя с женщиной – и как скованный колодник, теряешь всякую свободу. И всё, что есть в тебе надежд и сил, всё только тяготит и раскаянием мучает тебя. Гостиные, сплетни, балы, тщеславие, ничтожество – вот заколдованный круг, из которого я не могу выйти. Я теперь отправляюсь на войну, на величайшую войну, какая только бывала, а я ничего не знаю и никуда не гожусь. Je suis tres aimable et tres caustique, [Я очень мил и очень едок,] – продолжал князь Андрей, – и у Анны Павловны меня слушают. И это глупое общество, без которого не может жить моя жена, и эти женщины… Ежели бы ты только мог знать, что это такое toutes les femmes distinguees [все эти женщины хорошего общества] и вообще женщины! Отец мой прав. Эгоизм, тщеславие, тупоумие, ничтожество во всем – вот женщины, когда показываются все так, как они есть. Посмотришь на них в свете, кажется, что что то есть, а ничего, ничего, ничего! Да, не женись, душа моя, не женись, – кончил князь Андрей.
– Мне смешно, – сказал Пьер, – что вы себя, вы себя считаете неспособным, свою жизнь – испорченною жизнью. У вас всё, всё впереди. И вы…
Он не сказал, что вы , но уже тон его показывал, как высоко ценит он друга и как много ждет от него в будущем.
«Как он может это говорить!» думал Пьер. Пьер считал князя Андрея образцом всех совершенств именно оттого, что князь Андрей в высшей степени соединял все те качества, которых не было у Пьера и которые ближе всего можно выразить понятием – силы воли. Пьер всегда удивлялся способности князя Андрея спокойного обращения со всякого рода людьми, его необыкновенной памяти, начитанности (он всё читал, всё знал, обо всем имел понятие) и больше всего его способности работать и учиться. Ежели часто Пьера поражало в Андрее отсутствие способности мечтательного философствования (к чему особенно был склонен Пьер), то и в этом он видел не недостаток, а силу.
В самых лучших, дружеских и простых отношениях лесть или похвала необходимы, как подмазка необходима для колес, чтоб они ехали.
– Je suis un homme fini, [Я человек конченный,] – сказал князь Андрей. – Что обо мне говорить? Давай говорить о тебе, – сказал он, помолчав и улыбнувшись своим утешительным мыслям.
Улыбка эта в то же мгновение отразилась на лице Пьера.
– А обо мне что говорить? – сказал Пьер, распуская свой рот в беззаботную, веселую улыбку. – Что я такое? Je suis un batard [Я незаконный сын!] – И он вдруг багрово покраснел. Видно было, что он сделал большое усилие, чтобы сказать это. – Sans nom, sans fortune… [Без имени, без состояния…] И что ж, право… – Но он не сказал, что право . – Я cвободен пока, и мне хорошо. Я только никак не знаю, что мне начать. Я хотел серьезно посоветоваться с вами.
Князь Андрей добрыми глазами смотрел на него. Но во взгляде его, дружеском, ласковом, всё таки выражалось сознание своего превосходства.