Как удалить символьную ссылку в windows 10

Как создавать и удалять симлинки

Обновлено Обновлено:
Опубликовано Опубликовано:

Используемые термины: Симлинк, Windows, Linux.

Windows
Linux
Проблемы и решения

Работы с символьными ссылками в Windows ведутся из командной строки.

Синтаксис

mklink <имя создаваемого симлинка> <на что ведет симлинк>

Симлинк на файл

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\Сетевая папка»

Для файла:

del C:\Users\dmosk\Desktop\cmd.exe

Разрешить симлинки в Windows

Если при попытке перейти по символьной ссылке мы получим ошибку «Символическая ссылка не может быть загружена, так как ее тип отключен», открываем командную строку от администратора и вводим команду:

fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

Если это не помогло, пробуем создать симлинк с ключом /J.

Логотип LinuxLinux и FreeBSD

Создание

Общий синтаксис

ln -s <на какой существующий объект будет вести> <создаваемый симлинк>

В системах на базе Linux (например, Ubuntu или CentOS) и FreeBSD симлинк для каталога и файла создаются одинаково:

ln -s /usr/share/nginx/html/index.php /home/dmosk/

ln -s /usr/share/nginx/html /home/dmosk/

* в первом примере создана символьная ссылка в домашней директории пользователя dmosk на файл index.php; во втором — на каталог /usr/share/nginx/html.

Удаление

Также используется одна команда:

rm /home/dmosk/index.php

Решение возможных проблем

При работе с симлинками мы можем сталкиваться с различными проблемами. Я рассмотрю те, с которыми приходилось сталкиваться мне.

ln: failed to create symbolic link … Function not implemented

При попытке создать симлинк мы можем получить ошибку Function not implemented, например:

ln: failed to create symbolic link ‘/etc/pve/nodes/pve/fullchain.pem’: Function not implemented

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

df -T

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

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?

Да            Нет

Символическая ссылка (симлинк, символьная ссылка, 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 утилита для создания симлинков в windows

Синтаксис у утилиты
mklink
простой. Чтобы создать символическую ссылку на файл, нужно указать имя ссылки и целевой объект, на который она должна указывать. Можно указать тип ссылки:
/D
— символьная (мягкая) ссылка на каталог,
/H
— жесткая ссылка,
/J
– точка соединения (Junction point).

Чтобы использовать mklinkдля создания символических ссылок нужно запустить командную строку с правами администратора. Иначе при запуске команды появится ошибка “
You do not have sufficient privilege to perform this operation
”.

Если вам нужно разрешить создавать символические ссылки обычным пользователям, нужно добавить группу пользователей в параметр групповой политики Create Symbolic Links (Computer configuration -> Window Settings -> Security settings -> User Rights Assignment в редакторе GPO). По умолчанию в этой политике добавлена только локальная группа «Administrators». Обновите локальные политики после изменения параметра: gpupdate /force

параметр групповой политики Create Symbolic Links

Создадим в каталоге C:\PS символическую ссылку на файл notepad.exe:

mklink C:\PS\note.exe c:\Windows\System32\notepad.exe

Должно появится сообщение:

symbolic link created for C:\PS\note.exe <<===>> c:\Windows\System32\notepad.exe

Теперь для запуска процесса notepad.exe можно использовать символическую ссылку note.exe.

Теперь создадим в этом каталоге симлинк на другой каталог на этом же диcке:

mklink /D “C:\PS\Downloads” “C:\Users\user\Downloads”

пример использования mklink для создание символьных ссылок в windows

Теперь при переходе в каталог C:\PS\Downloads вы будете видеть содержимое каталога, на который он ссылается.

символическая ссылка на каталог в windows

Выведем содержимое каталога C:\PS:

Dir c:\ps

Как вы видите, в атрибутах некоторых файлов указано, что это symlink/simlinkd. Также указан объект, на который они ссылаются. В Windows File Explorer симлинки отображаются с иконками ярлыков, а в их свойствах можно посмотреть целевой объект на который они ссылаются. Dir вывести информацию о всех symlink в папке

Также можно создать символически ссылки в Windows 10 с помощью PowerShell (в этом примере я использую относительные пути, чтобы создать символическую ссылку):

New-Item -ItemType SymbolicLink -Path ".\test\tmpfiles" -Target "..\tmp\files"

создать SymbolicLink с помощью powershell

Можно создать символическую ссылку на сетевую папку на удаленном компьютере/сервере. Адрес сетевой папки нужно указывать в формате UNC. Следующий пример создаст симлинк на сетевой каталог на сервере:

mklink /D c:\ps\share \\mskfs01\Share

Например, подключим административную шару C$ с удаленного компьютера по IP адресу:

mklink /D c:\remotePC\server1 \\192.168.31.15\С$

Если при доступе к сетевой папке через симлинк, вы получили ошибку

The symbolic link cannot be followed because its type is disabled

проверьте разрешенные способы использования символических ссылок на вашем компьютере:

fsutil behavior query SymlinkEvaluation

Local to local symbolic links are enabled.
Local to remote symbolic links are enabled.
Remote to local symbolic links are disabled.
Remote to remote symbolic links are disabled.

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:\
    — укажите имя диска, на котором нужно найти все символические ссылки (если вы не хотите сканировать весь диск, укажите путь к нужному каталогу)

вывести все симлинке на диске в windows

Также можно вывести список всех символических ссылок на диске с помощью PowerShell. Для этого нужно просканировать все каталоги и найти NTFS объекты с атрибутом ReparsePoint:

Get-ChildItem -Path C:\ -Force -Recurse -ErrorAction 'silentlycontinue' | Where { $_.Attributes -match "ReparsePoint"}

I’ve installed this Link Shell Extension. With this, you have 2 methods.

METHOD 1

Create it using the context menu as shown and deleting via file explorer.

Test with a folder like C:\Windows\Logs as shown or similar.
I’m just creating a directory of all the possible locations of temp files to delete and I wanted a central folder where I could monitor the size of them via symbolic links.

Please note: The screen going white is just the UAC.

delete from explorer method

METHOD 2

The safest way undocumented here AFAIK.

On the created symbolic link (in steps shown above), right-click on it this time and click properties then go to the Link Properties tab.

Note: This shell extension added this tab.

Before I go on, lots more info can be found here, also, on the homepage are the x64 and 32bit versions.

So, to continue, here you can add anything to the target field as long as it’s different to the original target.


  1. Here’s a before with the target as C:\Windows\Logs
    target before

  2. Here’s an after with the target as C:\Windows\Logs_, notice the extra _ at the end.

    target after

  3. Press OK

  4. You can check this again by going over the same 1-3 steps above to ensure that has stuck, this time you will get an error message when you click on the Link Properties tab so the link is now broken.

  5. It is now safe(r) to delete the symbolic link than method 1 IMHO.


But! Both methods work here so it’s entirely up to the user’s choice. I like the properties method which I happily stumbled upon, so you’re 100% sure the link is broken by using step 4 above.

Here’s a gif of me creating a symbolic link by right mouse button dragging a folder to another and choosing the option to create a symbolic link in the sub-menu.

To delete, just follow the 1-5 steps above of method 2 or follow method 1.

How to create and delete a symbolic link using the properties method

Please note: The screen going white is just the UAC.

gif on how to create and delete syn links using the properties method

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

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

simvolicheskaya-ssylka-mklink

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

Это интересно: Как использовать SSD правильно?

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

mklink C:\images.jpg E:\images.jpg

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

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

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

mklink /D С:\folder E:\folder

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

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

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

erase С:\namefile

Либо так:

del С:\namefile

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

rmdir C:\folder

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

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

( 2 оценки, среднее 5 из 5 )

windows-hardlink-and-symlink-000.pngЖесткие и символические ссылки давно знакомы и активно используются Linux-администраторами, в то время как их Windows коллеги используют их гораздо реже, а некоторые вообще не знают о такой возможности. Тем не менее такая возможность в Windows существует и позволяет значительно упростить некоторые сценарии работы с папками и файлами. В данной статье мы рассмотрим все виды ссылок, доступные в среде ОС Windows, а также разные способы работы с ними, начиная от командной строки и заканчивая PowerShell.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Жесткие ссылки (HardLink)

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

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

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

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

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

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

windows-hardlink-and-symlink-001.pngСсылки можно создавать и при помощи PowerShell, для этого воспользуйтесь командой:

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

Команда другая, но принцип тот же самый: -ItemType — тип создаваемой ссылки, в нашем случае жесткая ссылка, -Path — путь к создаваемому файлу ссылки, -Target — файл на который мы делаем ссылку.

windows-hardlink-and-symlink-002.pngМожно ли сделать жесткую ссылку на директорию? Нет, только на файлы.

Вроде бы все понятно, но если внимательный читатель заглянет в свойства папки с жесткой ссылкой, то он увидит, что ее размер равен исходному файлу, если сделаем в ней еще одну жесткую ссылку — двум исходным файлам. Как так? Не стоит переживать, все нормально. Для операционной системы жесткая ссылка ничем не отличается от обычного файла и при подсчете свободного места учитывается размер каждой ссылки, но на самом деле на диске хранится единственная копия. В этом можно убедиться, если одновременно с созданием жестких ссылок контролировать свободное место на диске.

При желании мы можем провернуть даже такой фокус:

windows-hardlink-and-symlink-003.pngКакой вывод можно сделать из того, что мы увидели и где нам могут пригодиться жесткие ссылки? Прежде всего для предоставления пользователям доступа к объемным архивам, образам или инсталляционным пакетам. Скажем у вас есть файловый сервер и несколько отделов, каждому из которых нужно предоставить доступ к одному и тому же большому файлу. При этом вы можете не бояться, что кто-то удалит файл, он удалит его только у себя в директории, для остальных пользователей он останется доступен.

Но при этом надо очень внимательно относиться к вопросу одновременного редактирования файла, так как он существует в единственном экземпляре, но доступен по множеству ссылок в этом сценарии могут возникнуть самые разные коллизии.

Точки соединения (Junction)

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

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

mklink /J D:\LinkFolder C:\Folder

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

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

windows-hardlink-and-symlink-004.png

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

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

Комментировать здесь особо нечего, краткость не входит в число добродетелей PowerShell, но не оставляет места догадкам, все просто и понятно.

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

Символические ссылки (SymbolicLink)

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

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

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

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

windows-hardlink-and-symlink-005.pngДля создания символической ссылки на директорию добавьте ключ /D:

mklink /D D:\LinkFolder C:\Folder

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

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

Если в качестве цели указан файл — будет создана ссылка на файл, каталог — ссылка на каталог.

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

windows-hardlink-and-symlink-006.pngПри копировании символической ссылки за пределы локального тома будет скопирован исходный файл, даже если целевой том поддерживает работу со ссылками, но это не мешает создать новую ссылку на другом томе.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Другие наши интересноые статьи:

  • Как удалить с компьютера папку windows old
  • Как удалить символические ссылки windows 10
  • Как удалить систему из меню загрузки windows
  • Как удалить сеть wifi на windows 10 на ноутбуке
  • Как удалить систему безопасности windows 10

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии