ссылками_в_windows

Управление жесткими и символическими ссылками в Windows

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

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

Жесткая ссылка может существовать только в пределах логического тома, поддерживается файловыми системами NTFS и ReFS

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

mklink /H C:\Folder1\LinkFileName C:\Folder\FileName

Ключ /H предписывает создать именно жесткую ссылку, далее следует путь к новому файлу и целевому файлу, на который создаем ссылку.

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

C:\Users\nevvad>mklink /H F:\work_place\hard_link_name_gpg4win.exe F:\soft\cypher\gpg4win-4.0.0.exe
Создана жесткая связь F:\work_place\hard_link_name_gpg4win.exe <<===>> F:\soft\cypher\gpg4win-4.0.0.exe

Ссылки можно создавать и при помощи PowerShell, синтаксис следующий:

New-Item -ItemType HardLink -Path C:\Folder1\LinkFileName -Target C:\Folder\FileName

Где:

  • -ItemType – тип создаваемой ссылки, в данном случае жесткая ссылка;
  • -Path – путь к создаваемому файлу ссылки;
  • -Target – файл на который делаем ссылку.


Указанными выше способами, ссылки создаются только на файлы (не каталоги).

Забытая технология древних, поддерживаемая еще начиная с Windows 2000, позволяет сделать один из каталогов псевдонимом другого каталога. Чем-то напоминает символические ссылки, но в крайне упрощенном варианте. В качестве цели можно использовать только локальные папки, но при этом нет ограничения по размещению их на одном томе. Т.е. целевая папка может находиться на диске C:, а точка соединения для нее на диске D: и все будет работать. Точки соединения поддерживаются файловыми системами NTFS и ReFS.

Для создания точки соединения можно использовать mklink:

mklink /J D:\LinkFolder C:\Folder

Ключ /J указывает на создание точки соединения, далее следует директория каталога-псевдонима и директория целевого каталога. При любом изменении целевого каталога (перемещение, переименование, удаление) точка соединения перестает работать.

Обратите внимание, что данная директория в проводнике отображается как ярлык, а выводе команды dir как точка соединения (<JUNCTION>).

Это же действие в PowerShell:

New-Item -ItemType Junction -Path D:\LinkFolder -Target C:\Folder

После появления в NT 6.0 настоящих символических ссылок, точки соединения перестали быть нужны, но с ними можно повстречаться как в устаревших системах, так и в современных, где они могут присутствовать в виде наследия.

Пожалуй, самый популярный вид связи, позволяет создавать множество псевдонимов для файлов или каталогов размещая их на любых поддерживаемых локальных файловых системах. В качестве цели могут быть использованы как локальные, так и сетевые объекты. При создании символической ссылки можно использовать как абсолютные, так и относительные пути. Но в последнем случае нельзя перемещать ссылку - она перестанет работать. Символические ссылки поддерживаются начиная с NT 6.0 (Vista и Server 2008) и работают с файловыми системами NTFS и ReFS.

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

mklink  C:\Folder1\LinkFileName C:\Folder\FileName

При создании ссылки не забываем указать расширения для файла. Как и в случае с точкой соединения символическая ссылка отображается в виде ярлыка и обозначается в выводе команды dir – <SYMLINK>.

Для создания символической ссылки на директорию добавьте ключ /D:

mklink /D D:\LinkFolder C:\Folder

В PowerShell все проще, тип объекта будет определен автоматически:

New-Item -ItemType SymbolicLink -Path C:\Folder1\LinkFileName -Target C:\Folder\FileName
  • ссылками_в_windows.txt
  • Последнее изменение: 2022/05/17 14:35
  • admin