Создание перенаправления папок в Windows

Большинство ИТ-специалистов, вероятно, согласятся с тем, что в Windows есть функции, которые кажутся неполными или плохо спроектированными. Тем не менее, в Windows есть вещи, которые Microsoft действительно сделала правильно. Одна действительно незначительная функция, которую я всегда находил хорошо работающей, — это возможность использовать библиотеки. Я уверен, что большинство из вас хорошо знакомы с концепцией библиотек в Windows, но для удобства новичков библиотеки обеспечивают легкий доступ к пути к файловой системе, при этом конечному пользователю не нужно знать, что это за путь. Библиотека «Документы», например, отображается в контейнере «Библиотеки» в проводнике, но на самом деле указывает на C:Users<имя пользователя> Documents. Администратор также может перенаправить библиотеку документов (и другие библиотеки) в сетевое расположение. Это позволяет пользователям сохранять свою работу в знакомом месте, в то время как данные фактически записываются в место, выбранное администратором. Возможность перенаправить папку в место по вашему выбору может быть очень полезной, и есть два разных способа, которыми вы можете выполнять свои собственные перенаправления папок. Один из вариантов — создать собственную библиотеку. Через мгновение я дам вам краткое изложение этой техники. Другой метод включает использование утилиты командной строки для буквального перенаправления одной папки в другую.
Создание пользовательских библиотек
Чтобы создать пользовательскую библиотеку, начните процесс, открыв проводник. Теперь щелкните правой кнопкой мыши папку «Библиотеки», а затем щелкните правой кнопкой мыши пустое место под списком библиотек (в основной части проводника, а не в дереве консоли). Далее выберите Новый | Команды библиотеки из контекстного меню. Это заставит Windows создать новую библиотеку. Если хотите, вы можете придерживаться имени по умолчанию New Library, но я рекомендую использовать более описательное имя.
Теперь щелкните правой кнопкой мыши только что созданную библиотеку и выберите команду «Свойства» в контекстном меню. Это приведет вас к экрану, похожему на то, что вы видите ниже.
Как видите, новая библиотека изначально пуста. Чтобы связать библиотеку с папкой, нажмите кнопку «Добавить», затем выберите папку, которую вы хотите включить в библиотеку, и нажмите кнопку «Включить папку». Между прочим, одна библиотека может быть основана на нескольких папках, поэтому некоторые люди используют библиотеки как инструмент для агрегирования данных.
Выполнение перенаправления папок без библиотек
Библиотеки прекрасны, но у них есть свои ограничения. Во-первых, может быть немного сложно включить сетевой путь в библиотеку (обычно индексирование должно быть включено на сервере). Другое ограничение заключается в том, что при создании библиотеки вы, по сути, создаете ярлык для другой папки (или набора папок). Вы не перенаправляете существующую папку по вашему выбору в новое место. Если вы хотите выполнять настоящие перенаправления папок без ограничений библиотеки, вы можете использовать инструмент командной строки под названием MKLINK.
Предположим на мгновение, что конкретное приложение было жестко закодировано для сохранения своих выходных данных в C:Data, но по какой-то причине вам нужно сохранить данные в другом месте. Используя MKLINK, вы можете перенаправить папку в другую папку или даже на другой диск.
Утилита MKLINK может создавать три разных типа ссылок. Для перенаправления папок в другое место на том же компьютере вам потребуется использовать соединительную ссылку. К счастью, синтаксис проще некуда. Просто добавьте параметр /J, а также исходное и целевое расположение. Позвольте привести пример.
В этом примере у меня есть папка с именем C:MyData, и я хочу перенаправить ее в D:Data. Вот команда, используемая для этого.
Mklink /J C:MyData D:Data
Пример этого вы можете увидеть на рисунке ниже.
Вы бы использовали точно такой же синтаксис, если бы хотели перенаправить папку в другую папку на том же диске. Если, например, вы хотите перенаправить C:MyData на C:Data, вы должны использовать эту команду:
Mklink /J C:MyData C:Data
Прежде чем я двинусь дальше, есть пара вещей, которые вам нужно знать об использовании этой команды. Во-первых, команда MKLINK будет работать правильно, только если вы запустите ее из командной строки с повышенными привилегиями. Во-вторых, исходные папки не могут существовать заранее. MKLINK создаст для вас исходную папку. И наоборот, вы сами должны создать папку назначения. Если вам интересно, удаление исходной папки (в данном случае C:MyData) не приводит к удалению папки назначения (D:Data) или ее содержимого.
Чтобы увидеть, как перенаправление выглядит в действии, посмотрите на рисунок ниже. Здесь вы можете видеть, что я скопировал файл с именем nano.vhd в C:MyData. Однако файл был помещен в d:data.
Интересно, что если я использую команду DIR, Windows показывает перенаправленную папку как имеющую тип <JUNCTION>, а не тип <DIR>, как обычно. Вы можете увидеть, как это выглядит ниже.
Тип папки изменился, чтобы указать, что перекресток используется.
Вы также можете использовать MKLINK для перенаправления локальной папки в сетевое расположение, используя путь UNC или букву подключенного диска. Разница в том, что вы не можете использовать соединительную ссылку. Вместо этого вам придется использовать символическую ссылку, которую иногда называют программной ссылкой. Синтаксис в основном такой же, за исключением того, что команда использует /D вместо /J.
К сожалению, Windows достаточно умна, чтобы понять, что символическая ссылка указывает на сетевое расположение, поэтому вы не можете использовать эту технику, чтобы обманом заставить ОС проиндексировать сетевое расположение, которое иначе было бы невозможно проиндексировать.
Отличная альтернатива библиотекам
Какими бы удобными ни были библиотеки, они подходят не для каждой ситуации. Перенаправление папок с помощью команды MKLINK — отличная альтернатива библиотекам.