Содержание
- 1 Жесткие и символические ссылки в Windows
- 2 Как создавать символические ссылки (Symlinks) в системе Windows
- 3 Жесткие и символьные (символические) ссылки в Windows
- 4 Способы использования симлинков в Windows
- 4.1 Ситуация первая — незваные гости
- 4.2 Ситуация вторая — если у кого-то есть доступ к вашему компьютеру в локалке
- 4.3 Ситуация третья — использовать reparse-данные как скрытое хранилище
- 4.4 Ситуация четвёртая — убиваем свободное место на диске
- 4.5 Итог
- 4.6 По теме точек повторной обработки также есть следующее:
Жесткие и символические ссылки в Windows
Используя жёсткие ссылки файлов и каталогов, можно иметь несколько различных имён файлов или каталогов, ссылающихся на одни и те же данные. В windows механизм работает в файловой системе NTFS. Статья о том, как сделать такие ссылки в windows.
Возможно вы сталикивались со следующими задачами:
- Установить приложение или игру на HDD диск, а часть перенести на SSD.
- Перетащить данные приложения, без правки конфигурации. (пример ниже для SQL Server)
- Приложение/данные не влазят на один диск, а на другом диске как раз есть свободное место под оставшуюся часть.
Всё это можно решить используя ссылки на файлы и каталоги. Например, начиная с Windows Vista в винде отсутствует каталог «Documents and Settings» а операционная система на него ссылается из папки «Users» для совместимости с приложениями написанными для Windows XP.
Создание символической ссылки
Для создание ссылки используется команда mklink (из командной строки, кэп).mklinkСоздает символьную ссылку. MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение /D Создает символьную ссылку на каталог.
По умолчанию создается символьная ссылка на файл. /H Создает жесткую связь вместо символьной ссылки. /J Создает соединение для каталога. Ссылка Указывает имя новой символьной ссылки.
Назначение Указывает путь (относительный или абсолютный), на который ссылается новая ссылка.
Мне недавно хотелось удалить папку кеша обновлений Microsoft SQL Server, чтобы освободить 2 Гб на системном SSD диске. Вместо удаления я перенес данные на другой диск (D:).
Cоздал символьную ссылку и, вуаля, место освобождено, а SQL Server думает, что данные на прежнем на месте.
C:\>mklink /D «c:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Update Cache» «d:\distr\Sql Server\Update Cache» Символическая ссылка создана для c:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Update Cache d:\distr\Sql Server\Update Cache
Существуют инструменты для создание ссылок через графический интерфейс, например Link Shell Extension или NTFS Link , также их можно легко сделать в Far'е по Alt+F6
Отличия жестких ссылок от символических ссылок и связей
Материал из справки Far Manager.
На разделах NTFS можно создавать жёсткие ссылки (HardLink) для файлов, связи (Junction) для папок и символические ссылки (SymLink) для файлов и папок с помощью команды Alt-F6.
Жёсткие ссылки
Жёсткая ссылка (HardLink) — это просто ещё одна запись в папке для данного файла.
Когда создаётся жёсткая ссылка, сам файл не копируется физически, а только появляется под ещё одним именем или в ещё одном месте, а его старые имя и местонахождение остаются нетронутыми.
С этого момента жёсткая ссылка неотличима от первоначальной записи в папке.
Единственное отличие — то, что для жёсткой ссылка не создаётся короткое имя файла, поэтому из ДОС-программ она не видна.
Когда меняется размер или дата файла, все соответствующие записи в папках обновляются автоматически.
При удалении файла он не удаляется физически до тех пор, пока все жёсткие ссылки, указывающие на него, не будут удалены. Порядок их удаления значения не имеет.
При удалении жёсткой ссылки в корзину количество ссылок у файла сохраняется.
FAR умеет создавать жёсткие ссылки, отображать их количество для каждого файла в отдельной колонке (по умолчанию это последняя колонка в 9-м режиме панелей), а также сортировать файлы по количеству жёстких ссылок.
Создавать жёсткие ссылки можно только на том же диске, на котором расположен исходный файл.
Связи
Эта технология позволяет отображать любые локальные папки на любые другие локальные папки.
Например, если папка D:\SYMLINK указывает на C:\WINNT\SYSTEM32 в качестве своей цели, то программа, обращающаяся к D:\SYMLINK\DRIVERS, будет на самом деле обращаться к C:\WINNT\SYSTEM32\DRIVERS.
В отличие от жёстких ссылок, связи папок не обязательно должны располагаться на том же диске.
В Windows 2000 нельзя напрямую создать связь, ссылающуюся на папку CD-ROM, но это ограничение можно обойти, смонтировав CD-ROM диск на папку NTFS-раздела.
Символические ссылки
Символические ссылки (SymLink) на NTFS поддерживаются, начиная с Windows Vista (NT 6.0). Они представляют собой улучшенный вариант связей каталогов — символические ссылки могут указывать как на папки, так и на файлы, как на локальные, так и на сетевые, при этом поддерживаются относительные пути.
Источник: https://tyapk.ru/blog/post/hardlink-and-symlink-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:
mklink Link Target
Используйте /D, если вы хотите создать символическую ссылку, указывающую на каталог:
Используйте /H, если вы хотите создать жесткую ссылку, указывающую на файл:
mklink /H Link Target
Используйте /J для создания жесткой ссылки, указывающую на каталог:
mklink /J Link Target
Так, например, если вы хотите создать жесткую ссылку в C:\LinkToFolder, которая указывала бы на C:\Usersame\OriginalFolder, вы должны выполнить следующую команду:
mklink /J C:\LinkToFolder C:\Usersame\OriginalFolder
Вам нужно будет помещать в кавычки пути с пробелами. Например, если папка называется C:\Link To Folder и C:\Usersame\Original Folder, вы должны использовать следующую команду:
mklink /J «C:\Link To Folder» «C:\Usersame\Original Folder»
Если вы увидите сообщение «У вас недостаточно прав для выполнения этой операции», Вам следует запустить Командную строку как Администратор.
Как создать символическую ссылку с помощью графического инструмента
Если вы хотите создавать символические ссылки с помощью инструмента с графическим интерфейсом, загрузите Link Shell Extension. Обязательно загрузите соответствующий пакет необходимых библиотек – найдёте их на странице загрузки инструмента.
После установки найдите файл или папку, для которой вы хотите создать ссылку, щелкните её правой кнопкой мыши и выберите «Запомнить источник ссылки» в контекстном меню.
Затем вы можете щелкнуть правой кнопкой мыши в другой папке, указать на меню «Поместить как» и выбрать тип создаваемой ссылки.
Как удалить символические ссылки
Чтобы избавиться от символической ссылки, вы можете просто удалить её, как и любой другой файл или каталог. Только будьте осторожны: удаляйте ссылку, а не файл или каталог, к которому она привязана.
Источник: https://windows-school.ru/blog/kak_sozdavat_simvolicheskie_ssylki/2018-09-25-192
Жесткие и символьные (символические) ссылки в Windows
Если вам когда-то приходилось просматривать расположения файлов штатных программ 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. Вот так:
cd %userprofile%\desktop
fsutil hardlink create file2.txt file1.txt
fsutil hardlink create file3.txt file1.txt
Обратите внимание, что после команды create первым идет имя жесткой ссылки, а затем имя оригинального файла. Также вы можете создавать жесткие ссылки на другие жесткие ссылки. В общем, развлекайтесь. Уверен, что вы найдете для себя немало интересного.
Вам может быть интересно: Отключить слежение Windows 10
Символьные ссылки или Symbolic Link
В отличие от жестких, символьные ссылки или Symbolic Link обладают большей гибкостью.
Предназначаются они для удобной организации объектов файловой системы, а также оптимизации производительности приложений на SSD-дисках.
Ссылки этого типа могут создаваться и для файлов, и для каталогов, в том числе сетевых; они поддерживают связь между томами, используя относительные пути. Принципом работы символьная ссылка напоминает обычный ярлык.
Использование Symbolic Link может иметь смысл при необходимости получения доступа к одному файлу из разных мест. Создаются символьные ссылки командой mklink:
mklink D:\file2.txt %userprofile%\desktop\file1.txt
Первым после команды идет путь к символьной ссылке, вторым – путь к оригинальному файлу. Если нужно создать символьную ссылку для каталога, используется та же команда mklink, но с ключом \d.
mklink \d D:\folder2 %userprofile%\desktop\folder1
Внешне символьные ссылки почти ничем не отличаются от обычных ярлыков, за исключением пометки symlink в свойствах файла или даты создания вместо пути к оригиналу в каталоге.
Также если вы удалите оригинал, а затем попробуете перейти по символьной ссылке, то она просто не откроется, тогда как при попытке открыть битый ярлык появится сообщение о недоступности оригинального файла.
Но самое главное отличие от ярлыков в том, что при работе с символьными ссылками Windows по-прежнему будет считать, что вы работаете с оригинальным объектом.
На этом пока все. В следующий раз мы рассмотрим способ применения символьных ссылок на более конкретных примерах, а заодно узнаем, какие используются утилиты для работы с жесткими и символьными ссылками.
Источник: https://WindowsTips.ru/zhestkie-i-simvolnye-simvolicheskie-ssylki-v-windows
Способы использования симлинков в Windows
В Windows 7 есть символьные ссылки (ещё их называют символическими ссылками),или симлинки. В более ранних версиях Windows есть прототип символьныхссылок — символьная связь (junction), которая отличается тем, что можетуказывать только на диск или каталог и не поддерживает относительные пути.
Как создаются символьные ссылки? Можно для этого написать программу, а можно воспользоватьсясуществующими утилитами. В Windows 7 для этого есть консольная программа mklink.
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение /D Создание символической ссылки на каталог. По умолчанию создается символическая ссылка на файл. /H Создание жесткой связи вместо символической ссылки. /J Создание соединения для каталога. Ссылка Имя новой символической ссылки. Назначение Путь (относительный или абсолютный), на который ссылается новая ссылка.
Кроме того, существует утилита Junction из набора программ Sysinternals.
Ситуация первая — незваные гости
Ещё ситуация: есть программа или часть программы, например база данных, которую нужно быстро уничтожить в случае прихода нежданных гостей. Но софт капризный и хочет стоять, допустим только на диске Си хранить данные строго в определённом каталоге.
Что делать, если гости всё же пришли, как быстро уничтожитьданные?Симлинки могут выручить — перенаправлять локальный путь на флешку, съёмныйдиск или по сети. В экстренном случае выдёргивается флешка или отрубается сеть,флешку можно уничтожить физически. На компе ссылка становится мёртвой,данных на самом компе нет.
Это быстрее, чем вынимать из компа жёсткий диски уничтожать его.
Ситуация вторая — если у кого-то есть доступ к вашему компьютеру в локалке
Если в локальной сети или в сети предприятия у кого-то есть доступ к вашему компьютеру, то онможет заставить вас:
- сохранять данные не туда, куда вы ожидаете;
- заставить вас запустить что-то не оттуда, откуда вы ожидаете.
Ведь никто не проверяет перед сохранением, не является ли целевая папка символьной ссылкой?Да и не сразу сообразишь, как это сделать.
Ситуация третья — использовать reparse-данные как скрытое хранилище
Cимлинки внутри устроены сложно. Внутри у них скрывается более мощный механизм — reparse points.
Из файла можно делать не только симлинк, но и вообще присоединятьпроизвольные данные, причём такой файл в системе будет выглядеть мёртвым.
На все операции с файлом система будет выдавать «Ошибка 0x80070780. Доступк этому файлу из системы отсутствует».
Ни удалить файл, ни переименовать егостандартными средствами не получиться.
Всё же в системе есть инструмент для работы с reparse-данными, доступныйв командной строке, это утилита fsutil:
Смысл в том, что догадаться о том, что файл является reparse-файломтрудно. В сообщении об ошибке не говорится ни слова про точкиповторной обработки.
Ситуация четвёртая — убиваем свободное место на диске
C помощью созданного reparse-файла спрятать сразу много данных,чтобы не нашли. Делается это так:
- Создаётся пустой файл file;
- К нему цепляется NTFS-поток file:stream. Прицепить поток к файлу можно,например, с помощью программы NTFS Stream Explorer;
- В поток записывается произвольное количество данных, можно даже пожрать всёсвободное место пользователя;
- В файл записываются reparse-данные, после чего он становится либо недоступен,либо выглядит как простой симлинк.
Фишка в том, что прицепленный потокникуда не девается, но пока у файла есть reparse-данные, поток никак обратноне извлечь и даже нельзя сказать, есть он у файла или нет.
Как же его обратно извлечь? Нужно удалить reparse-данные, file станет обратнообычным файлом, file:stream снова можно будет открыть и прочитать.То есть можно таким образом хорошо спрятать архив с чем-то секретным илиубить свободное пространство на чужом диске, пользователь ни за что не найдёт, куда оно ушло.
Итог
Стандартными средствами Windows можно лишь создавать и удалять символьные ссылки.А вот хранить в reparse-данных собственные данные — для этого уже потребуется писать программу.О том, как это делается, читайте на странице Создание точки повторной обработки собственного типа.
По теме точек повторной обработки также есть следующее:
система комментирования CACKLE
Источник: http://hex.pp.ua/using-symlinks.php