69 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Символические ссылки Windows – работа с MKLINK

Команда MKLINK – создание символьной ссылки на файл или каталог.

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

Формат командной строки MKLINK:

MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение

Параметры командной строки:

/D – Создание символической ссылки на каталог. По умолчанию создается символическая ссылка на файл.

/H – Создание жесткой связи (hard link)вместо символической ссылки.

/J – Создание соединения для каталога.

Ссылка – Имя новой символической ссылки.

Назначение – Путь (относительный или абсолютный), на который ссылается создаваемая ссылка.

mklink /? – отобразить подсказку по использованию команды.

mklink /D slnk1 D: – создать в текущем каталоге символьную ссылку с именем slnk1, ссылающуюся на корневой каталог диска D:

mklink /D C:mountpointShC \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1 – создать символическую ссылку с именем ShC в каталоге mountpoint на диске C:, ссылающуюся на теневую копию (мгновенный снимок) диска.

При работе с каталогами, параметр /J и параметр /D имеют одинаковый результат.

Для удаления созданных символических ссылок можно воспользоваться стандартными командами командной строки Windows:

erase lnkfile1 – удалить символьную ссылку на файл. Сам файл, на который ссылается ссылка, не удаляется.

del lnkfile1 – то же, но с использованием команды del

rmdir C:mountpointShC – удаление символической ссылки на каталог. Сам каталог не удаляется. Обратите внимание, что использование команды del для файлов внутри каталога, на который ссылается ссылка, приводит к их удалению.

erase C:mountpointShClile1.txt – удалить файл из каталога, определенного символической ссылкой.

mklink /H hm histmacros.cmd – создать жесткую ссылку с именем hm, ссылающуюся на файл histmacros.cmd. Жесткие ссылки могут создаваться только в пределах одного раздела. Нельзя создать жесткую ссылку, например, командой:

mklink /H C:mountpointshm D:SCRIPTShistmacros.cmd

И жесткая ссылка, и файл, на который она ссылается, должны быть на одном и том же логическом диске.

Символическая ссылка с помощью MKLINK на Windows 10

Если вы имеете SSD и жёсткий диск, то должны знать о такой функции в Windows, как символическая ссылка, которая поможет при различных явлениях. Сразу скажу, что символические ссылки нужны для переноса данных с одного диска на другой. Например, вы хотите перенести с SSD или наоборот на твердотельный накопитель какие-то файлы, но понятное дело, что лишние перезаписи на диск никак положительно на нём не скажутся. Тогда нам помогут символические ссылки, которые предотвратят чрезмерную запись данных на диск.

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

Как создать символическую ссылку на любой системе?

К примеру, возьмем файл изображения под названием images.jpg, находящийся на обычном жёстком диске E, но я хочу перенести его на SSD (диск С). Допустим, файл находится по следующему пути: E:images.jpg, а мне нужно, чтобы он находился чисто в каталоге (С:), тогда я в командной строке пропишу следующую команду:

mklink C:images.jpg E:images.jpg

Перед этим он должен находится на диске Е. После этого вы увидите сообщение, что символическая ссылка создана.


На диске (С:) появился файл images.jpg, но он там находится не физически, это что-то типа ярлыка, а сам файл всё еще находится в папке (E:).

То же самое можно проделать и с папками. Предварительно создаем или переносим в старое место каталог с любым именем, скажем «folder» и прописываем в командной строке следующее:

mklink /D С:folder E:folder

Таким образом у вас появится на диске (С:) папка folder, но физически она будет находиться на диске (E:). Так вы сможете создавать символические ссылки на любые файлы. При удалении же такой ссылки вы файл или каталог не удалите, поэтому можете быть спокойны.

При использовании параметров J и D дают одинаковый эффект.

Чтобы удалить символическую ссылку необходимо выполнить такую команду:

erase С:namefile

del С:namefile

Чтобы удалить символьную ссылку на каталог, выполняем команду:

rmdir C:folder

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

Ну вроде бы всё, что нужно знать об этой функции.

Символические ссылки Windows – работа с MKLINK.

Как создаются и работают ссылки Windows, или что можно сделать при помощи mklink.

Внутренние ссылки Windows чем-то напоминают ярлыки. Они создаются системой с единственной целью: заставить Windows думать, что папка или файл, реально или физически располагающиеся на диске (разделе) 1, нужно искать на диске (разделе) 2. При этом и создаётся ссылка, которая сохраняет все свойства при операциях с объектами: при добавлении файлов в эту папку ссылка переносит их именно в реально (физически) существующее местоположение. Таким образом, символьная или символическая ссылка Windows позволяет отображать папку C:Директория1 как, например, D:Директория2. При этом “подлога” не заметит ни вкрадчивый пользователь, ни даже служебные программы. Если для вас этого немного сложновато, то вы увидитесь, что таких ссылок и “поддельных” папок в Windows очень много. А некоторых директорий и системных папок, к которым мы привыкли относится как к неприкосновенным… вообще не существует: это и есть обыкновенные для Windows символические ссылки. Созданные с их помощью “виртуальные” папки хранятся только на диске RAM.

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

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

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

Читать еще:  ТОП-5 Способов Как Заблокировать Сайт в браузере Chrome

А вот она в Windows 7:

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

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

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

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

Создавая ссылки для Windows: mklink

В том виде, как вы их знаете, ссылки в Windows создаются в момент установки, что забирает львиную долю процесса. Однако в числе инструментов из служебных утилит есть та, с помощью которой ссылки можно создавать самостоятельно. Знакомьтесь – mklink. В консоли cmd от имени администратора можно найти по утилите справку:

Итак, что видно по справке?

  • mklink может создавать ссылки не только на сами папки и файлы, но и на такие же символьные ссылки
  • если не использовать аргумент /d, будет создана символьная ссылка на файл
  • если флаг /d применяется в команде, то появится символьная ссылка на папку/директорию

Давайте на секунду остановимся. Если вы наткнулись на статью случайно, вероятно, что и пояснение по используемым флагам /D и /J из справки утилиты не сильно разъяснит ситуацию (конкретно, разницу между этими флагами команды). И, опять же, умение правильно создать символьную ссылку или указующее соединение из mklink зависит от того, верно ли вы понимаете разницу в объясняемых справкой пунктах о /D (символьной ссылке), /J (соединениях каталогов) и /H (жёсткой ссылке). Об этом – в конце статьи.

Итак, создавать “собственные папки” просто. Например, мне нужно заставить появиться некую папку Директория на диске С, которая (на самом деле) является реально существующей у меня папкой по адресу D:hackingPython. Так и запишем:

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

А зачем это надо-то?

Да, казалось бы, в том варианте как описывается, разницы между созданием обычного ярлыка для файла или папки нет. Но это лишь на первый взгляд. Ну, представьте себе, что купленная только что игра требует установиться в корневую C:Games (как обычно), требуя при том свободного места на диске С этак Гбайт 30. И при этом карта системного диска С выглядит примерно так:

Есть второй том, там ещё есть место, но что толку-то? Простым решением был бы … перенос папки C:Games на диск, видимо, D. Вручную это делать? Безошибочно это редко удаётся. А вот команда

справится с задачей в два счёта. И оп: игра-то думает, что её установили в нужную папку. А это не так, на самом деле. Какие ещё варианты? Я не особо игрок, но для меня, обладателя огромного количества виртуальных машин, которые занимают немало пространства, в такой ситуации тоже есть свои плюсы как решить проблему нехватки пространства для кучи виртуальных Windows.

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

А теперь набираем WIN + R, вводим D:Фотки и работаем как хотим:

Ссылки Windows из mklink: о чём следует помнить?

  • будущая ссылка и целевая папка должны быть на локальных томах; создание hard-ссылки с сетевым назначением не прокатит;
  • имя создаваемой ссылки должно быть уникальным; по существующим или зарезервированным адресам/именам утилита вернёт ошибку;
  • объединить две или более директорий одной ссылкой-папкой у меня так и не получилось;
  • переименовывать папки-ссылки можно также, как и обычные папки; они всё равно будут указывать на реально существующее местоположение целевой папки;
  • при этом Windows не делает никаких различий между “фейковой” папкой и реально существующей; файлы легко и надёжно перемещаются в папку-ссылку и обратно. Однако консоль cmd выдаёт истинную функцию папки-ссылки (созданной с флагом /j):

ссылка помечена как Junction, а не DIR

Точки стыка (жёсткие связи), соединения и символические ссылки файловой системы NTFS

Итак, в чём основные отличия связующих ссылок?

Жёсткая ссылка (hard link) – это файл, представляющий другой файл, находящийся на том же томе без дублирования его свойств. Жёстких ссылок на один файл может быть создано несколько, но на файл, находящийся в другом разделе (а тем более диске), жёсткую ссылку не поставить. Более того, жёсткие ссылки работают только с файлами – никаких директорий. Преимуществом жёсткой ссылки является тот факт, что, являясь копией настоящего, она не требует дополнительного пространства на диске. Так, если вы создали 5 ссылок на 1 файл весом 100 Мб, общий объём занимаемого места так и останется 100 Мб (а не 600 Мб). Любую из этих ссылок можно удалить, остальные и сам файл-оригинал останутся. А все изменения в файле отображаются и в ссылках.

Соединения для каталога – это ссылки на целевую директорию/папку. Соединения уже видят не только собственные тома, но и соседние разделы. Но, опять же, лишь в пределах локальной машины. Также не требуют свободного места, лишь указывая на оригинальную директорию. Если ту удалить или переместить, связи сломаются, и ссылки работать не будут. Помните историю про Documents and Settings? Это и есть пример такого соединения.

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

Читать еще:  В чём разница между cmd и PowerShell Windows?

Отличия между типами связей можно представить в таком виде:

Закончить можно ещё одним фактом: создание связи между файлами или каталогами в NTFS ни в коем случае не подразумевает копирование или резервирование целевых файлов или папок. И Windows не следит за состоянием цепочки: удаляете цель – получаете ошибку.

Ну, вот такая в целом ситуация с типами внутренних связей Windows. Успехов.

Как создавать символические ссылки (Symlinks) в системе Windows

Windows 10, 8, 7 и Vista поддерживают символические ссылки, которые указывают на файл или папку в вашей системе. Вы можете создать их с помощью командной строки или стороннего инструмента под названием Link Shell Extension.

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

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

Например, предположим, что у вас есть программа, которая использует файлы в папке C:Program. А Вам хотелось бы сохранить этот каталог в D:Refuse, но программа требует, чтобы её файлы были в C:Program. Вы можете перенести исходный каталог из C:Program в D:Refuse, а затем создать символическую ссылку C:Program, указав на D:Refuse. Когда вы перезапустите программу, она попытается получить доступ к своему каталогу в C:Program. Windows автоматически перенаправит её на D:Refuse, и всё будет работать так, как если бы оно было в C:Program.

Этот трюк можно использовать для всех целей, включая синхронизацию любой папки с такими программами, как Dropbox, Google Drive и OneDrive.

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

Обратите внимание, что Windows фактически не использует термины «жесткая ссылка» и «мягкая ссылка». Вместо этого используются термины «жесткая ссылка» и «символическая ссылка». В документации Windows «символическая ссылка» – это то же самое, что «мягкая ссылка». Тем не менее, mklink-команда может создавать как жесткие ссылки, так и софт-ссылки (известные как «символические ссылки» в Windows).

Как создать символические ссылки с mklink

Вы можете создавать символические ссылки, используя команду mklink в окне командной строки в качестве администратора. Чтобы открыть её, найдите ярлык «Командная строка» в меню «Пуск», щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».

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

Без каких-либо дополнительных опций mklink создает символическую ссылку на файл. Команда ниже создает символическую или «мягкую» ссылку (Link) на объект Target:

Используйте /D, если вы хотите создать символическую ссылку, указывающую на каталог:

Используйте /H, если вы хотите создать жесткую ссылку, указывающую на файл:

Используйте /J для создания жесткой ссылки, указывающую на каталог:

Так, например, если вы хотите создать жесткую ссылку в C:LinkToFolder, которая указывала бы на C:UsersNameOriginalFolder, вы должны выполнить следующую команду:

Вам нужно будет помещать в кавычки пути с пробелами. Например, если папка называется C:Link To Folder и C:UsersNameOriginal Folder, вы должны использовать следующую команду:

Если вы увидите сообщение «У вас недостаточно прав для выполнения этой операции», Вам следует запустить Командную строку как Администратор.

Как создать символическую ссылку с помощью графического инструмента

Если вы хотите создавать символические ссылки с помощью инструмента с графическим интерфейсом, загрузите Link Shell Extension. Обязательно загрузите соответствующий пакет необходимых библиотек – найдёте их на странице загрузки инструмента.

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

Затем вы можете щелкнуть правой кнопкой мыши в другой папке, указать на меню «Поместить как» и выбрать тип создаваемой ссылки.

Как удалить символические ссылки

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

Ссылки в Windows – для чего они нужны?

Эта статья – одна их тех, которые я собирался писать годами, но всё руки не доходили. Не буду вокруг да около, в рамках челленджа нет места лени – буду писать!

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

Со ссылками я познакомился ещё в Linux, тогда же они показались прикольным изобретением! И до недавнего времени я не знал, что ссылки есть и в Windows. Ну если не брать во внимание ярлыки – то хоть и похоже на ссылку, но всё-таки немного не то, о чём идёт речь.

Смысл ссылок становится понятен, когда немного разберёшься в том, как устроена файловая система. Что в общем виде объект “файл” ссылается на какой-либо кластер в файловой системе, в котором лежат его данные. Так вот, может быть так, что на один и тот же кластер ссылается более, чем один файл.

Какие бывают ссылки

Разумеется, ссылки бывают различных видов. Как и в системах на базе Linux.

Жёсткие ссылки

Действительны только в пределах одного раздела (это как раз тот тип, о котором я говорил – когда в MFT одна файловая запись указывает на тот же самый кластер, что и другая. Файл на диске живёт, пока есть хотя бы одна жёсткая ссылка на него. Ну и разумеется, работает только с файлами.

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

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

Точки присоединения

Работают только с каталогами. Возможно вы сталкивались с возможностью создания точки присоединения в окне создания нового раздела:

Подключить том как папку

Иначе говоря, можно одну папку отобразить на другую.

Чтобы это было понятно – вспомните, например, как в XP было “Documents and Settings”, а начиная с Windows 7 стало “Users”, но можно залезть на “Documents and Settings” (оставлено для совместимости) и попасть туда же… Также и ProgramData и ряд других специальных каталогов, которые являются ничем иным, как точками присоединения.

Зачем нужны ссылки

Исходя из видов ссылок вытекают и варианты их использования.

  1. Если на разделе заканчивается место, можно “перенести” части какой-либо тяжёлой программы/игры, указав соответственно символьные ссылки на новое место. Программа будет работать с файлами на другом разделе так же, как если бы они были у неё под боком.
  2. Если нужно открыть доступ только лишь к некоторым файлам на закрытом сетевом ресурсе и не хочется копировать эти файлы в общедоступный каталог – можно создать жёсткие ссылки на них в этом каталоге, унаследуя права доступа каталога файлы будут доступны, однако дисковое место не будет занято дублями.
  3. Можно обойти ограничение в 260 символов пути в Windows, об этом я уже писал тут.
  4. Да мало ли чего ещё может придумать мозг админа!
Читать еще:  Компьютер не видит видеокарту - Что делать?

Примеры работы со ссылками

Для создания ссылок есть много различных программ. Я использую “Link Shell Extension“, для проводника Windows. Есть плагины для Total Commander, Far Manager и даже консольные программы.

После установки программы достаточно кликнуть правой кнопкой мыши на файловом объекте:

Запомнить источник ссылки

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

Выбрать какую ссылку создать

Готово! Вы – великолепны!

От Sysinternal есть неплохая утилитка – Junctions – хорошо работает с точками привязки. Работать с ней можно так (с правами администратора):
> junction64.exe “C:UsersDmitryMusic” “E:Music”
Готово! Теперь наш каталог Music в профиле пользователя ссылается на другой жёсткий диск и соответствующий каталог “E:Music”.

С помощью этой же программы можно перенести папки приложений, которые любят “забиваться” – например iTunes и т.д., из Application Data куда-нибудь, где побольше места, не забивая профиль пользователя.

Ну и немаловажно познакомиться с командой mklink в Windows:

Mklink штатная утилита

Дополнение! Вот написал статью и уже через неделю пригодились знания – мелочь, а приятно. Поделюсь кейсом.

Было нужно заставить корректно работать одну программу, которая искала свою базу в каталоге P:PROGABAZA (условно), но под буквой P: был сетевой диск, который ссылался на каталог P:PROGA другого компьютера, там P – логический (на корень P$ не получилось сделать, хз почему).

Так вот, на обоих компах одна и та же прога. Пути к базам жёстко зашиты внутри, менять нельзя (прога под DOS). И вот на одном нужно заставить прогу видеть базу по родному пути P:PROGABAZA, а на втором – по P:BAZA, но чтобы она думала, что путь точно такой же.

Как решал:

Перешёл в каталог P:PROGA и создал Junction Point с именем PROGA, который ссылается на “.” – текущую папку.

Таким образом первая прога видит свой путь без изменений по P:PROGABAZA, а вторая – заходит на диск P:, заходит на Junction с именем PROGA (думая, что это каталог PROGA) и попадает снова на свой диск P: (думая, при этом, что она уже в P:PROGA) и смело идёт дальше в BAZA.

В общем организовал небольшую петлю, но это сработало! И радости не было предела.

Жесткие и символьные (символические) ссылки в Windows

Жесткие и символьные (символические) ссылки в Windows

Браузер для Windows XP: какой он самый идеальный вариант?

Браузер без рекламы и всплывающих окон: существует ли он в природе?

Обновление Виндовс, отключающее звук и удаляющее файлы: кто виноват и что делать?

Google Chrome просит срочно обновить браузер: всех впускать, никого не выпускать

Кибератаки парализуют разработку вакцины от коронавируса и Microsoft выпустил борца с ними

Если вам когда-то приходилось просматривать расположения файлов штатных программ Windows, то возможно вы замечали одну странность. Некоторые файлы приложений дублируются, причем несколько раз. Например, в 64-разрядной Windows 8.1 обнаруживается целых 6 исполняемых файлов Блокнота notepad.exe, находящихся в разных каталогах системного раздела. Зачем вообще нужно такое странное дублирование?

А необходимо оно для обеспечения совместимости со сторонними приложениями, использующими Блокнот для каких-то своих нужд. Причина проста – в разных программах прописанный путь к Блокноту может отличаться, и чтобы исключить проблемы, разработчики Microsoft решили разместить notepad.exe в нескольких местах. То же самое касается ряда других штатных приложений, например, WordPad.

Жесткие ссылки или 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 первым идет имя жесткой ссылки, а затем имя оригинального файла. Также вы можете создавать жесткие ссылки на другие жесткие ссылки. В общем, развлекайтесь. Уверен, что вы найдете для себя немало интересного.

Символьные ссылки или 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 по-прежнему будет считать, что вы работаете с оригинальным объектом.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: