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

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

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

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

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

Синтаксис

* в данном примере на рабочем столе пользователя dmosk будет создан симлинк на файл cmd.exe.

Симлинк на директорию

Для создания ссылки на папку доступен также ключ /J. Созданная таким образом ссылка будет по некоторым особенностям напоминать жесткую ссылку.

Удалить симлинк

В Windows его можно удалить в проводнике, как обычный файл или папку.

Или использовать командную строку.

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

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

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

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

Linux и FreeBSD

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

Удаление

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

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

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

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

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

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

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

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

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

Использование команды Format

При форматировании создается файловая система раздела и все существующие в нем данные безвозвратно теряются*. Windows ХР и Windows Server 2003 поддерживают файловые системы FAT, FAT32 и NTFS. FAT — файловая система, также поддержи­ваемая MS-DOS, Windows 3.1, Windows 95, Windows 98 и Win­dows Millennium Edition (Windows Me). FAT32 — 32-разрядная версия FAT. NTFS — «родная» файловая система Windows NT, Windows 2000, Windows ХР и Windows Server 2003.

Команда Format синтаксис и параметры

Для форматирования раздела служит команда FORMAT. Если в данный момент вы работаете с программой DiskPart, введи­те exit для выхода в стандартную командную строку. Базовый синтаксис команды FORMAT для форматирования жестких дисков выглядит так:

где Том — буква диска или точка монтирования, Файловая-Система — тип файловой системы, Метка — описательное имя (метка), а РазмерКластера — размер кластера в байтах. Максимальная длина метки тома составляет И символов (включая пробелы). Метка используется с буквами диска, но не с точками монтирования. Если вы не укажете размер кластера, FORMAT выберет стандартный размер в зависи­мости от размера тома. Допустимые размеры кластеров:

  • 512 — 512 байтов на кластер;
  • 1024 — 1024 байта на кластер;
  • 2048 — 2048 байтов на кластер;
  • 4096 — 4096 байтов на кластер;
  • 8192 — 8192 байта на кластер;
  • 16К — 16 Кб на кластер;
  • 32К – 32 Кб на кластер;
  • 64К — 64 Кб на кластер.

Примеры команды Format

Чтобы понять, как пользоваться Format, рассмотрим не­сколько примеров.

Форматирование диска F с созданием файловой системы FAT32 и меткой AppData:

Форматирование точки монтирования C:Data с созданием файловой системы NTFS и размером кластера 512 байтов:

Форматирование диска S с созданием файловой системы NTFS и меткой AppData:

В некоторых случаях требуется демонтировать том, прежде чем вы сможете его отформатировать. Для этого предназначен параметр /X. Кроме того, если вы работаете с диском, который уже отформатирован и на нем нет ника­ких проблем, то можете применить параметр /Q для быст­рого форматирования. При быстром форматировании осу­ществляется подготовка файловой системы к использова­нию без проверки на возможные ошибки. На больших раз­делах это обычно позволяет сэкономить несколько минут. Однако при таком форматировании нельзя пометить секто­ры как сбойные и заблокировать их.

Сообщения при форматировании жесткого диска

При запуске FORMAT сообщает о типе текущей и вновь со­здаваемой файловой системы следующим образом:

The type of the file system is RAW.

The new file system is NTFS.

Здесь форматируется неразмеченное про­странство, по этой причине тип файловой системы указан как RAW. Некоторые приложения записывают на диск не­структурированные данные (raw data) как битовый поток. В этом случае преимущества разметки диска и файловой си­стемы не используются.

Del (erase)

Удаление заданных файлов.

Задание расположения и имени файла для удаления. Параметр имя_файла является
обязательным. Допускается использование нескольких имен файлов. Имена файлов следует
разделять пробелом, запятой или точкой с запятой.

Задание удаления с подтверждением для каждого файла.

Задание удаления файлов с атрибутом «Только чтение».

Удаление заданных файлов в каталоге и всех его подкаталогах. Выводит имена удаляемых файлов.

Задание автоматического режима. Не выводится подтверждение на удаление.

Удаление файлов с заданными атрибутами.

Задание следующих атрибутов файла.

Отображение справки в командной строке.

Чтобы удалить все файлы из папки Test на диске C, введите одну из следующих команд:

Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать
раздел форума
этого сайта (требуется регистрация).

Новый раздел о средствах командной строки в рамках этого же проекта расположен
здесь

Почему были созданы два файла?

mklink /J “%APPDATA%Apple ComputerMobileSyncBackup” “D:iTunes Backup”

Указанная команда не работает. Синтаксис для mklink :

где link – это “Новое символическое имя ссылки”, а не имя каталога, включая полный путь.

Кроме того, вы не можете сделать ссылку, где имя уже существует.

Если вы были в каталоге “%APPDATA%Apple ComputerMobileSync” и попытались выполнить команду:

mklink /J Backup “D:iTunes Backup”

Тогда вы получили бы ошибку:

Невозможно создать файл, если этот файл уже существует

Обратите внимание, что в сообщении об ошибке говорится, что файл уже существует вместо папки. Это связано с тем, что система видит ссылки как ярлыки (файлы), а не как папки.

:/>  Таблица сочетаний клавиш

Как перенаправить файл резервной копии iTunes на внешний жесткий диск?

Используйте следующую процедуру:

  • Создайте D:iTunes Backup если он не существует. Теперь у вас есть цель для перехода:md D:iTunes Backup
  • Перейдите в существующий каталог резервного копирования:cd “%APPDATA%Apple ComputerMobileSyncBackup”
  • Переместите любые существующие файлы в D:iTunes Backup:move * “D:iTunes Backup”
    Если есть какие-либо папки, переместите их.
  • Перейдите на один каталог в папку “%APPDATA%Apple ComputerMobileSync:cd ..
  • Удалить каталог резервного копирования:rd Backup

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD – Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • mklink – создает символическую ссылку на каталог или файл, или создает жесткую ссылку на файл или соединение каталога.

Преобразование раздела в NTFS, предварительные проверки

Если вы создали раздел или том с файловой системой FAT или FAT32, его можно преобразовать в NTFS без форматирования. Преимущество такого способа в том, что структура файлов и каталогов сохраняется, а данные не теряются.

Для преобразо­вания FAT или FAT32 в NTFS служит команда CONVERT.

До преобразования нужно выполнить следующее.

  • Проверьте, является ли раздел активным загрузочным или системным, содержащим операционную систему. В х86-системах активный загрузочный раздел можно преоб­разовать в NTFS. Однако для этого утилита CONVERT должна получить монопольный доступ к разделу, что воз­можно лишь при загрузке системы. Таким образом, если вы попытаетесь преобразовать активный загрузочный раздел, то получите запрос на подтверждение преобразования при следующей перезагрузке системы. Ответив Yes и перезаг­рузив систему, вы инициируете процесс преобразования. Учтите, что для полного преобразования активного загру­зочного раздела обычно требуется несколько перезагрузок.
  • Удостоверьтесь, достаточно ли на диске свободного мес­та для выполнения преобразования. На диске должно быть свободно примерно 25% от общего объема раздела или тома. Например, если размер раздела равен 20 Гб, для его преобразования потребуется около 5 Гб свободного места. CONVERT проверяет наличие свободного места перед пре­образованием и в случае его недостатка прерывает работу.

Утилиты для преобразования NTFS в FAT нет. Преобразование из NTFS в FAT или в FAT32 возможно толь­ко путем удаления раздела или тома и его повторным со­зданием уже как FAT- или FAT32-TOMa.

Выполнение базовых преобразований дисков в NTFS

Утилита CONVERT запускается из командной строки. Для преобразо­вания диска используйте следующий синтаксис:

где Том — буква диска с двоеточием, путь к диску или имя тома.

Параметр /NoSecurity удаляет все атрибуты за­щиты и делает все файлы и каталоги диска доступными группе Everyone.

Утилита CONVERT поддерживает несколько дополнитель­ных параметров. Параметр /V обеспечивает вывод подробной информации при преобразовании, /X демонтирует раздел или том перед преобразованием, если это нужно. Основная причи­на демонтирования диска перед преобразованием — исключить доступ к диску приложений или процессов на время его пре­образования. Однако загрузочный или системный диск демон­тировать нельзя. Эти диски будут преобразованы при переза­грузке системы.

Базовая процедура преобразования нормально работает с большинством типов дисков. Но иногда она не дает идеальный результат. Например, преобразованный диск может работать медленнее, чем до преобразования. Для решения этой пробле­мы служит параметр /CvtArea, который задает имя непрерывного файла в корневом каталоге; на место этого файла поме­щаются системные файлы NTFS.

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

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

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

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

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

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

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

mklink /H C:Folder1LinkFileName C:FolderFileName

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

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

New-Item -ItemType HardLink -Path C:Folder1LinkFileName -Target C:FolderFileName

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

Можно ли сделать жесткую ссылку на директорию? Нет, только на файлы.

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

:/>  Файл hosts — где находится, как должен выглядеть, как отредактировать и сохранить

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

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

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

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

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

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

mklink /J D:LinkFolder C:Folder

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

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

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

Это же действие в 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:Folder1LinkFileName C:FolderFileName

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

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

mklink /D D:LinkFolder C:Folder

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

New-Item -ItemType SymbolicLink -Path C:Folder1LinkFileName -Target C:FolderFileName

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

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

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

Утилита Convert используется для конвертации файловых систем, например из fat32 в ntfs. Утилита является встроенной в Windows системы и запускается в командной строке. Если Вам нужно конвертировать диск, используйте следующий синтаксис:

convert volume /FS:NTFS

Здесь volume — буква диска с двоеточием, путь диска или имя тома. Например, если
нужно преобразовать диск D: в NTFS, используйте команду:

convert D: /FS:NTFS

Если у тома есть метка, программа попросит ее ввести. Программа не будет просить
ввода метки, если та не установлена.
Полный синтаксис программы Convert следующий:

Параметры программы следующие:

volume — задает том, с которым нужно работать;
/FS:NTFS — преобразование в NTFS;
/V — включает подробный режим;
/X — принудительное размонтирование тома перед преобразованием (если необходимо);
/CvtArea:filename — устанавливает имя непрерывного файла в корневом каталоге для
резервирования файла для системных файлов NTFS;
82 Глава 2
/NoSecurity — к преобразуемым файлам будет разрешен доступ для всех пользователей.
Еще один пример вызова Convert:

convert C: /FS:NTFS /V

Перед использованием утилиты Convert уточните, используется ли раздел как активный загрузочный раздела или системный раздел, содержащего ОС. В  Windows 2012R2 можно преобразовать активный загрузочный раздел в NTFS, но выполнение этой операции требует, чтобы система получила полный доступ к этому разделу, такой доступ может быть получен только во время загрузки. Если попытаетесь конвертировать активный загрузочный раздел в NTFS, ОС Windows Server 2012 R2 отобразит подсказку, позволяющую добавить в план преобразование при следующей загрузке ОС.

Trusted answers to developer questions

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

Educative Answers Team

Grokking the Behavioral Interview

Many candidates are rejected or down-leveled in technical interviews due to poor performance in behavioral or cultural fit interviews. Ace your interviews with this free course, where you will practice confidently tackling behavioral interview questions.

What is mklink?

mklink is a keyword used to make symbolic-links between directories. Imagine that you wanted to store a directory somewhere and wanted a shortcut to access it from somewhere else. mklink would enable you to achieve this task.

Link is the path where you want the shortcut/symbolic-link to be, PLUS the name of the shortcut.

:/>  Как использовать power shell invoke web request с прокси сервером

Target is the path to the folder you want to link to.

Option provides three parameters to specify the type of link you want to establish.

Example

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

Write mklink

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

Write mklink and specify the option.

If no option is specified, then the mklink creates a soft link that points to the target by default.

Then, provide the path where you want to create the shortcut and add filename at the end of it. For example, in the above image, the path is:

and the filename is:

Finally, add the target path where you want the link to direct you.

Completion

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

The above statement will appear if the symbolic link is created successfully.

Learn in-demand tech skills in half the time

Did you find this helpful?

Насколько я знаю, + не должно иметь никакого особого значения

+ имеет особое значение для copy, Это указывает на то, что файлы должны быть объединены как часть процесса копирования.

Чтобы объединить файлы, укажите один файл для места назначения, но несколько файлов в качестве источника. Чтобы указать более одного файла, используйте подстановочные знаки или перечислите файлы с + между каждым (file1+file2+file3)

Чтобы объединить файлы, укажите один файл для места назначения, но несколько файлов в качестве источника. Чтобы указать более одного файла, используйте подстановочные знаки или перечислите файлы с + между (файл1+ файл2+ файл3).

При копировании нескольких файлов таким способом первый файл должен существовать, иначе копирование не удастся, обходным путем для этого является COPY null + file1 + file2 dest1

Источник – копия

  • Индекс AZ командной строки Windows CMD – Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • копировать – копировать один или несколько файлов в другое место.

Deleting files is one of the frequently done operation from Windows command prompt. This post explains how to use ‘del’ command from CMD for different use cases like deleting a single file, deleting files in bulk using wild cards etc. Before we start to look at the syntax, note that the command works only for files and can’t handle folders.

How to delete a file

Run del command with the name of the file to be deleted, you are done!

You do not see message after running the command if the file is deleted successfully. Error message is shown only when something goes wrong.

Delete files in bulk

Del command recognizes wildcard(*) and so can be used to delete files in bulk from CMD.  Some examples below.
To delete all the files in current folder

To delete all the files with ‘log’ extension

Delete all files having the prefix ‘abc’

Delete all files having ‘PIC’ somewhere in the file name.

The above are the basic use cases of del command. Continue to read below for non trivial use cases.

Delete multiple files

‘Del’ command can accept multiple files as argument

Delete Read only files

We can’t delete a read-only file using simple‘del’ command. We get access denied error in this scenario.

A read-only file can be deleted by adding /F flag.

del /F readonlyfile.txt

Alternatively, we can use the below command too

del /A:R readonlyfile.txt

Если в качестве параметров команды DEL, используется только «имя файла», тогда будет удален указанный файл в текущей директории. Допустим, на диске «C» имеется файл «f1.txt», тогда команда удалит этот файл.

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

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

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

Ключ /P используется в том случае, если необходимо перед удалением файла вывести на экран запрос на подтверждение удаления (по умолчанию, запрос на подтверждение удаления файла выводится только при удалении всех файлов из указанной папки и всех файлов с указанного диска, а при удалении одного файла такой запрос не выводится). Например, удалим файл «text.txt» из папки «FOLDER»: del d:older ext.txt /p

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

По умолчанию, нельзя удалить файл, у которого установлен атрибут «только для чтения». Для этих целей используется ключ /F. Для примера, создадим в папке «FOLDER» файл «f1.txt» и установим для него атрибут «только для чтения», тогда при попытке удалить данный файл с помощью команды del d:older1.txt появится сообщение об ошибке.

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

Чтобы удалить такой файл используйте ключ /F: del d:older1.txt /f

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

Удаление файлов из указанной папки или указанного диска не приводит к удалению файлов из подкаталогов. Если же необходимо удалить файлы из подкаталогов, необходимо использовать ключ /S. Для примера, создадим на диске «D» папку «FOLDER», в ней создадим еще одну папку «Format». В каждой из этих папок создадим по одному файлу. Тогда команда del d:older /s удалит все файлы не только из каталога «FOLDER», но и из подкаталога «Format». Перед удалением каждого файла, на экран будет выводиться сообщение о подтверждении удаления, а также полный путь и название удаленного файла.

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

  • R – файлы, с атрибутом «только для чтения».
  • H – скрытые файлы.
  • S – системные файлы.
  • A – файлы с архивным атрибутом.
  • I – файлы с неиндексированным содержимым.

Для примера, создадим на диске «D» 2 файла: «f5.txt» и «f6.txt». Для файла «f6.txt» установим атрибут «только для чтения». Тогда команда del d: /a:r удалит только файл «f6.txt».

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

Если перед атрибутом поставить знак «-», то удалены будут файлы, не имеющие данный атрибут. Например, создадим снова на диске «D» файл «f6.txt» и установим для него атрибут «только для чтения». Тогда команда del d: /a:-rудалит файл «f5.txt» и не тронет файл «f6.txt».

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