- Как создавать и удалять симлинки
- Windows
- Синтаксис
- Симлинк на файл
- Симлинк на директорию
- Удалить симлинк
- Разрешить симлинки в Windows
- Linux и FreeBSD
- Создание
- Windows. Симлинки, символьные ссылки на файл или каталог
- Добавить симлинк
- Удалить симлинк
- Как создать и удалить переходную ссылку в Windows 10
- Правила
- Создать ссылку соединения
- Удалите ссылку соединения
- Добавить комментарий Отменить ответ
- • Свежие записи
- • Категории
- • itsecforu.ru
- • Страны посетителей
- IT is good
- Использование символических ссылок в Windows
- Как создать символическую ссылку в Windows?
- Как найти и вывести все символические ссылки на диске?
- Символические ссылки Windows – работа с MKLINK.
- СПРАВКА, или что такое ссылка для Windows?
- Чем отличаются символьные ссылки от стандартных ярлыков?
- Создавая ссылки для Windows: mklink
- А зачем это надо-то?
- Ссылки Windows из mklink: о чём следует помнить?
- Точки стыка (жёсткие связи), соединения и символические ссылки файловой системы NTFS
Как создавать и удалять симлинки
Windows
Работы с символьными ссылками в Windows ведутся из командной строки.
Синтаксис
Симлинк на файл
mklink C:\Users\dmosk\Desktop\cmd.exe C:\Windows\system32\cmd.exe
* в данном примере на рабочем столе пользователя dmosk будет создан симлинк на файл cmd.exe.
Симлинк на директорию
mklink /D «C:\Users\dmosk\Desktop\Сетевая папка» \\dmosk.local\share
* в примере создается симлинк на сетевую папку \\dmosk.local\share
** так как в названии папки есть пробел, путь заключен в кавычки.
Для создания ссылки на папку доступен также ключ /J. Созданная таким образом ссылка будет по некоторым особенностям напоминать жесткую ссылку.
Удалить симлинк
В Windows его можно удалить в проводнике, как обычный файл или папку.
Или использовать командную строку.
Для папки:
rmdir «C:\Users\dmosk\Desktop\Сетевая папка»
Для файла:
Разрешить симлинки в Windows
Если при попытке перейти по символьной ссылке мы получим ошибку «Символическая ссылка не может быть загружена, так как ее тип отключен», открываем командную строку от администратора и вводим команду:
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
Если это не помогло, пробуем создать симлинк с ключом /J.
Linux и FreeBSD
Создание
В системах на базе Linux (например, Ubuntu или CentOS) и FreeBSD симлинк для каталога и файла создаются одинаково:
Windows. Симлинки, символьные ссылки на файл или каталог
Отредактировано: 11 Августа 2019
Если возникла необходимость сослаться на один файл или каталог из нескольких мест в Windows, поможет система символьных ссылок. Все что для этого понадобится — командная строка, запущенная от имени администратора. В Windows ее можно найти набрав cmd в поиске.
Добавить симлинк
mklink — команда добавляющая символическую ссылку.
Доппараметры (необязательны)
/D — создание символической ссылки на каталог. По умолчанию создается символическая ссылка на файл.
/H — создание жесткой связи (hard link) вместо символической ссылки. Жесткие ссылки могут создаваться только в пределах одного раздела, и только для файлов. Жесткие ссылки отличаются от символических тем, что если удалить файл на который ведет ссылка, симлинк перестанет работать, а хардлинк продолжит работать, и исчезнет только если удалить все ссылки.
/J — создание соединения (hard link) для каталога.
Ссылка — путь, который должен вести на файл или каталог.
Назначение — путь до местонахождения файла или каталога, который должен открываться по ссылке.
mklink /? — отобразить подсказку по использованию команды.
Удалить симлинк
erase lnkfile1 — удалить символьную ссылку на файл. Сам файл, на который ссылается ссылка, не удаляется.
del lnkfile1 — то же, но с использованием команды del, файл на который ссылается ссылка удаляется.
rmdir путьдокаталога — удаление символической ссылки на каталог. Сам каталог не удаляется.
Также, можно удалить в проводнике, как обычный файл или папку.
Как создать и удалить переходную ссылку в Windows 10
Вы, наверное, слышали о символических ссылках и их полезности.
Вы можете создать символическую ссылку в Windows, Mac и Linux.
Символьные ссылки более эффективны, и поэтому вы должны быть более осторожны, когда имеете дело с ними.
Ссылка другого типа, которую вы можете создать между папками / местоположениями, – это переходная ссылка.
Соединительная ссылка – это своего рода подмножество или разновидность символической ссылки.
Вот как вы можете создавать и удалять переходные ссылки в Windows 10.
Правила
- Создана между папками. Она не может быть создан между файлами.
- Может быть создана только между локальными дисками, т.е. не между сетевыми дисками и локальными дисками
Создать ссылку соединения
Чтобы создать соединение, вам нужно сначала решить, где вы хотите создать ссылку на соединение, и на какую папку вы хотите, чтобы она ссылалась.
Целевая папка должна уже существовать, т.е. команда junction не создаст папку для вас.
Ради этого руководства мы собираемся создать переходную ссылку на папку на диске D.
Эта папка называется «Target folder».
Мы собираемся сделать ссылку на него из подпапки на диске C.
Соединительная ссылка будет создана в;
Откройте командную строку с правами администратора и выполните следующую команду.
Обратите внимание, что вы не должны создавать папку «Target» в «Path to junction link».
Вместо этого вы должны указать это только в команде.
Кроме того, имя ссылки не обязательно должно совпадать с целевой папкой.
Вы можете назвать ссылку как угодно и связать ее с нужной вам папкой.
Нажмите Enter, чтобы создать ссылку соединения.
Удалите ссылку соединения
Есть два способа удалить ссылку соединения.
Вы можете выбрать ее и нажать клавишу удаления на клавиатуре или удалить его из командной строки.
Откройте командную строку с правами администратора и выполните следующую команду.
Удаление соединительной ссылки не удалит папку, на которую она ссылается, и не удалит ни один из файлов в целевой папке.
Из коробки нет никакого способа создать переходную ссылку, как удалить ссылку через графический интерфейс, однако, если вы не боитесь создавать переходные ссылки, вы можете найти приложения, которые предоставляют вам простой графический интерфейс для их создания.
Добавить комментарий Отменить ответ
• Свежие записи
• Категории
• itsecforu.ru
• Страны посетителей
IT is good
Использование символических ссылок в Windows
Символическая ссылка (симлинк, символьная ссылка, Symbolic link) это специальный файл на файловой системе, которые сам не содержит данных, а является по сути ярлыком, указывающим на какой-то другой объект (файл или папку). При обращении к симлику операционная система считает, что это оригинальный файл (папка) и работает с ними совершенно прозрачно.
Символические ссылки используются в Windows довольно часто для системных файлов и каталогов. Пользователь может их применять, когда нужно перенести часть “тяжелых” файлов на другой диск, но чтобы Windows считала, что файлы все еще находятся в исходном каталоге (например в ситуациях, когда нужно экономить место на SSD, перенеся некоторые каталоги на более медленный и емкий SSD, не нарушая работоспособности программ). Можно использовать симлинки на SMB файловом сервере, когда каталоги с разных LUN должны быть доступны через одну точку входа.
В Windows есть три типа файловых ссылок для NTFS томов: жесткие, мягкие (симлинки), точки соединения (Junction point).
- Hard Links (жесткие ссылки) – могут указывать только на локальный файл, но не на папку. Такой файл – это ссылка на другой файла на этом же диске без фактического дублирования самого файла. У него отображается такой же размер и свойства, как у целевого файла (но реальное место на диске он не занимает);
- Junction Points (Directory Hard Link, точка соединения) – могут указывать только на папку (на этом же или на другом разделе);
- Symbolic Links (мягкая ссылка, симлинк) – могут указывать на локальный файл, папку и сетевой каталог на удаленном компьютере (UNC), поддерживаются относительные пути.
В подавляющем большинстве случаев вам будет достаточно функционала symbolic link, как наиболее универсального средства создания ссылки на любой объект.
Как создать символическую ссылку в Windows?
Для создания символических и жестких ссылок в Windows можно использовать встроенную утилиты mklink или PowerShell.
Синтаксис у утилиты mklink простой. Чтобы создать символическую ссылку на файл, нужно указать имя ссылки и целевой объект, на который она должна указывать. Можно указать тип ссылки: /D — символьная (мягкая) ссылка на каталог, /H — жесткая ссылка, /J – точка соединения (Junction point).
Если вам нужно разрешить создавать символические ссылки обычным пользователям, нужно добавить группу пользователей в параметр групповой политики Create Symbolic Links (Computer configuration -> Window Settings -> Security settings -> User Rights Assignment в редакторе GPO). По умолчанию в этой политике добавлена только локальная группа «Administrators». Обновите локальные политики после изменения параметра: gpupdate /force
Создадим в каталоге C:\PS символическую ссылку на файл notepad.exe:
mklink C:\PS\note.exe c:\Windows\System32\notepad.exe
Должно появится сообщение:
Теперь для запуска процесса notepad.exe можно использовать символическую ссылку note.exe.
Теперь создадим в этом каталоге симлинк на другой каталог на этом же диcке:
mklink /D “C:\PS\Downloads” “C:\Users\user\Downloads”
Теперь при переходе в каталог C:\PS\Downloads вы будете видеть содержимое каталога, на который он ссылается.
Выведем содержимое каталога C:\PS:
Как вы видите, в атрибутах некоторых файлов указано, что это symlink/simlinkd. Также указан объект, на который они ссылаются. В Windows File Explorer симлинки отображаются с иконками ярлыков, а в их свойствах можно посмотреть целевой объект на который они ссылаются.
Также можно создать символически ссылки в Windows 10 с помощью PowerShell (в этом примере я использую относительные пути, чтобы создать символическую ссылку):
New-Item -ItemType SymbolicLink -Path «.\test\tmpfiles» -Target «..\tmp\files»
Можно создать символическую ссылку на сетевую папку на удаленном компьютере/сервере. Адрес сетевой папки нужно указывать в формате UNC. Следующий пример создаст симлинк на сетевой каталог на сервере:
mklink /D c:\ps\share \\mskfs01\Share
Например, подключим административную шару C$ с удаленного компьютера по IP адресу:
mklink /D c:\remotePC\server1 \\192.168.31.15\С$
Если при доступе к сетевой папке через симлинк, вы получили ошибку
проверьте разрешенные способы использования символических ссылок на вашем компьютере:
fsutil behavior query SymlinkEvaluation
Чтобы включить использование символических ссылок на удаленные ресурсы, выполните команды:
fsutil behavior set SymlinkEvaluation R2R:1
fsutil behavior set SymlinkEvaluation R2L:1
Вы можете работать с символическими ссылками, как с обычными объектами файловой системы, можно переименовать, переносить или удалить их. Система автоматически изменит настройки таких симлинков, чтобы они указывали на верные целевые объекты.
Для удаления симлинков используются обычные команды, как и для удаления файлов:
Del c:\ps\note.exe
RD c:\ps\downloads
Как найти и вывести все символические ссылки на диске?
В Windows нет простых инструментов для просмотра и управления всеми симлинками на диске.
Вы можете вывести список всех символических ссылок на диске с помощью команды:
dir /AL /S C:\ | find «SYMLINK»
- /A – вывести файлы с атрибутом L (симлинк);
- /S –выполнить команду рекурсивно для всех вложенных каталогов;
- C:\ — укажите имя диска, на котором нужно найти все символические ссылки (если вы не хотите сканировать весь диск, укажите путь к нужному каталогу)
Также можно вывести список всех символических ссылок на диске с помощью PowerShell. Для этого нужно просканировать все каталоги и найти NTFS объекты с атрибутом ReparsePoint:
Get-ChildItem -Path C:\ -Force -Recurse -ErrorAction ‘silentlycontinue’ | Where
Символические ссылки 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. Если не очень заняты, полюбопытствуйте прямо сейчас, обратив внимание на само содержимое папок:
А вот она в Windows 7:
загляните внутрь папки Documents and Settings: ничего не замечаете?
А в Windows 10 этой папки нет? Вскроем скрытые файлы и папки:
Да нет, всё на месте:
Обратите внимание на Cвойства папки. Если вы не проводили дополнительный операций с разрешениями для папок и файлов, папку Documents and Setting вы вообще не сможете открыть. И всё по той же причине: её просто не существует, но “старым” службам и программам она необходима по определению. Так, Windows сохранила в своё время за пользователями право использовать устаревшие, но привычные (и, тем более, оплаченные по лицензии) программы. Особенно это касается пакета Microsoft Office. А та, как вы уже поняли, без папки обойтись не могла. Кстати, в этих фактах и кроется небольшая для первооткрывающих ссылки загадка: создаются они в основном для системных нужд. Вообще, все символьные ссылки в Windows делятся на две условные категории: системные связи и связи конечного пользователя. При этом по умолчанию символьные ссылки система для нас с вами не создаёт.
Чем отличаются символьные ссылки от стандартных ярлыков?
Да, на первый взгляд ничем. По крайней мере, функции очень похожи. Но, присмотревшись, разницу можно увидеть и обычному пользователю. Начать можно с того, что символьная ссылка является неким указателем, работающем на уровне файловой структуры. Ярлык – порождение конкретного процесса. То бишь Проводника (он же explorer.exe). Таким образом ярлык – реально существующий и занимающий конкретное пространство файл, а символьной ссылки как таковой не существует. Это типа такой “призрак”, системная голограмма, артефакт (он всегда весит 0 байт). В этом легко убедиться, создав ссылку и ярлык для одного объекта и посмотрев их Свойства.
Далее. Ярлык – файл, содержащий в себе конкретный путь от точки А в точку Б. Смысл его работы прост – дважды щёлкнули и перенеслись в нужном направлении. Всё: ярлык “появился” и “исчез” в ожидании следующего вызова. Символьная ссылка живёт постоянно и начинает работу вместе с включением системы. Так, щёлкнув по ярлыку, тот переносит вас к конкретному файлу или папке. Щёлкая по одноимённой символьной ссылке, создаётся впечатление, что в папке уже существует целый набор файлов. В этом (в том числе) вы можете убедиться, используя командную консоль: добраться до нужной папки вы можете, “зарядив” ссылку. В консоли такая операция с ярлыком не прокатит.
Таким образом, в отличии симлинка от обычного ярлыка и кроется её основное предназначение: Windows относится к симлинку как к настоящей папке. Т.е. разницы между ними нет. Одна и та же папка может находится сразу в нескольких местах. Представьте, что у вас есть программа, файлы которой ОБЯЗАТЕЛЬНО должны находиться по адресу C:\Program Files. Только системный диск забит и места на диске С уже нет. А вот другой диск или том под буквой, например, D полупуст. Вам нужно лишь перетащить вашу программу на диск D, создав попутно папку типа D:\Программа, создав в папке C:\Program Files симлинк на D:\Программа. И, если в вашем арсенале есть такие инструменты как виртуальный хранилища данных на манер like Dropbox, Google Drive, Яндекс.Диск или OneDrive, пространство рабочей зоны Windows можно серьёзно увеличить.
Создавая ссылки для Windows: mklink
В том виде, как вы их знаете, ссылки в Windows создаются в момент установки, что забирает львиную долю процесса инсталляции системы. Однако в числе инструментов из числа служебных утилит есть та, с помощью которой ссылки можно создавать самостоятельно. Знакомьтесь – mklink. В консоли cmd от имени администратора можно найти по утилите справку:
Итак, что видно по справке?
- mklink может создавать ссылки не только на сами папки и файлы, но и на такие же символьные ссылки
- если не использовать аргумент /d, будет создана символьная ссылка на файл
- если флаг /d применяется в команде, то появится символьная ссылка на папку/директорию
Давайте на секунду остановимся. Если вы наткнулись на статью случайно, вероятно, что и пояснение по используемым флагам /D и /J из справки утилиты не сильно разъяснит ситуацию (конкретно, разницу между этими флагами команды). И, опять же, умение правильно создать символьную ссылку или указующее соединение из mklink зависит от того, верно ли вы понимаете разницу в объясняемых справкой пунктах о /D (символьной ссылке), /J (соединениях каталогов) и /H (жёсткой ссылке). Об этом – в конце статьи.
Итак, создавать “собственные папки” просто. Например, мне нужно заставить появиться некую папку Директория на диске С, которая (на самом деле) является реально существующей у меня папкой по адресу D:\hacking\Python. Так и запишем:
Если название папки содержит несколько слов с пробелами, поместите весь путь (включая имя диска) целиком в команде в кавычки “” . Далее, немного усложним задачу, для чего создадим папку, создадим в ней файл, добавим для всего этого символическую ссылку, в окончание её же и удалим. Вот команды, а вы проверьте после ввода каждой из них, что происходит на диске С: с помощью проводника.
А зачем это надо-то?
Да, казалось бы, в том варианте как описывается, разницы между созданием обычного ярлыка для файла или папки нет. Но это лишь на первый взгляд. Ну, представьте себе, что купленная только что игра требует установиться в корневую 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-системы.
Отличия между типами связей можно представить в таком виде:
Закончить можно ещё одним фактом: создание связи между файлами или каталогами в NTFS ни в коем случае не подразумевает копирование или резервирование целевых файлов или папок. И Windows не следит за состоянием цепочки: удаляете цель – получаете ошибку.
Ну, вот такая в целом ситуация с типами внутренних связей Windows. Успехов.