Какие существуют типы ссылок в Windows? Как мне их создать?

10576
Cookie

Можно ли связать два файла или папки, не имея другого расширения под Windows?

Я ищу функциональность, эквивалентную программным и жестким ссылкам в Unix.

52
это связано http://superuser.com/questions/343074/directory-junction-vs-directory-symbolic-link barlop 7 лет назад 0
отличная статья здесь http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/ следите за заседаниями до w7 barlop 7 лет назад 0

4 ответа на вопрос

55
grawity

Обратите внимание, что единственное печальное отличие состоит в том, что вам нужны права администратора для создания символических ссылок. IE, вам нужно повышенное приглашение. (Обходной путь - SeCreateSymbolicLinkPrivilege, может быть предоставлен обычным пользователям через secpol.msc.)

Примечание в терминологии: ярлыки Windows не называются «символическими ссылками»; это ссылки оболочки, так как они представляют собой просто файлы, которые оболочка Windows Explorer обрабатывает специально.


Симлинки: Как мне создать их в файловой системе NTFS?

Windows Vista и более поздние версии поддерживают символические ссылки в стиле Unix в файловых системах NTFS. Помните, что они также следуют тому же разрешению пути - относительные ссылки создаются относительно местоположения ссылки, а не к текущему каталогу. Люди часто об этом забывают. Они также могут быть реализованы с использованием абсолютного пути; Например, c: \ windows \ system32 вместо \ system32 (который идет в каталог system32, связанный с местоположением ссылки).
Симлинки реализованы с использованием точек повторной обработки и, как правило, имеют то же поведение, что и симлинки Unix.

Для файлов вы можете выполнить:

mklink  имя_ссылки  TargetPath 

Для каталогов вы можете выполнить:

mklink / д имя_ссылки  TargetPath 

Жесткие ссылки: как их создать в файловых системах NTFS?

Все версии Windows NT поддерживают жесткие ссылки в стиле Unix в файловых системах NTFS. Использование mklink в Vista и выше:

mklink / ч имя_ссылки  TargetPath 

Для Windows 2000 и XP используйте fsutil.

fsutil hardlink создать имя ссылки  targetpath 

Они также работают так же, как жесткие ссылки Unix - несколько записей таблицы файлов указывают на один и тот же индекс .


Соединения каталогов: как их создать в файловых системах NTFS?

Windows 2000 и более поздние версии поддерживают соединения каталогов в файловых системах NTFS. Они отличаются от символических ссылок тем, что они всегда абсолютны и указывают только на каталоги, а не на файлы.

mklink / J имя_ссылки  TargetPath 

На версиях, которые не имеют mklink, скачать junctionс Sysinternals:

узел  имя_ссылки  TargetPath 

Соединения реализуются с использованием точек повторной обработки .


Как я могу смонтировать том, используя точку повторной обработки в Windows?

Для полноты, в Windows 2000 и более поздних версиях точки повторной обработки также могут указывать на тома, что приводит к постоянному монтированию диска в стиле Unix :

mountvol точка  монтирования \\? \ Volume { volumeguid } 

Тома GUID перечислены по mountvol; они статичны, но только внутри одной машины.


Есть ли способ сделать это в проводнике Windows?

Да, вы можете использовать расширение оболочки Link Shell Extension, которое упрощает создание ссылок, которые были описаны выше. Вы можете найти загрузки в нижней части страницы .

Файловая система NTFS, реализованная в NT4, Windows 2000, Windows XP, Windows XP64 и Windows7, поддерживает функцию, известную как жесткие ссылки (называемые здесь жесткими ссылками ). Жесткие ссылки дают возможность хранить одну копию файла, пока он не появится в нескольких папках (каталогах). Они могут быть созданы с помощью команды POSIX ln, включенной в Windows Resource Kit, утилиты команды fsutil, включенной в Windows XP, или моей утилиты командной строки ln.exe .

Расширение позволяет пользователю выбрать один или несколько файлов или папок, а затем с помощью мыши завершить создание необходимых ссылок - жестких ссылок, переходов или символических ссылок или, в случае папок, создать клоны, состоящие из жестких или символических ссылок. LSE поддерживается во всех версиях Windows, которые поддерживают NTFS версии 5.0 или новее, включая Windows XP64 и Windows7. Жесткие ссылки, соединения и символические ссылки НЕ поддерживаются в файловых системах FAT, и процесс клонирования и Smart Copy не поддерживается в файловых системах FAT.

Источник может быть просто выбран с помощью меню правой кнопки мыши.

И в зависимости от того, что вы выбрали, вы щелкаете правой кнопкой мыши по папке назначения и получаете меню с опциями.

Это позволяет очень легко создавать ссылки. Для подробного руководства прочитайте документацию LSE .

Загрузки можно найти внизу их страницы .

Соответствующие URL-адреса MSDN:

39
Tom Wijsman

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

Для получения информации о том, как определенная связь может быть сделана, обратитесь к grawity «s ответа .

Что такое ссылка?

Ссылка - это связь между двумя объектами; в контексте управления каталогами ссылка может рассматриваться как связь между следующими двумя объектами:

  1. Справочная таблица

    Эта таблица отслеживает файлы и папки, которые находятся в определенной папке.

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

  2. Кластер данных

    Более конкретно, первый кластер из файла или каталога.

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

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

Чтобы увидеть, откуда это корни, давайте вернемся в прошлое ...

Что такое ссылка оболочки и почему ее не всегда достаточно?

Хотя это может показаться не знакомым, мы все знаем это! Ярлыки файлов, несомненно, являются наиболее часто используемым способом связывания файлов. Они были найдены в некоторых ранних версиях Windows 9x и были там в течение долгого времени.

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

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

Если бы вам пришлось работать с файлом, на который вы ссылаетесь, вам бы сначала пришлось выяснить, в каком каталоге находится файл. Вы не можете просто открыть ссылку в редакторе, как если бы вы редактировали .lnkфайл, а не файл, на который ссылается. Это блокирует множество возможных вариантов использования для ссылок оболочки.

Как ссылка на точку соединения пытается решить эти проблемы?

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

При удалении точки соединения сохраняется исходный каталог. При удалении исходного каталога точка соединения остается. Перечисление диска для проверки точек соединения, которые должны быть удалены, стоит очень дорого. Это недостаток в результате его реализации.

Точка соединения NTFS реализована с использованием точек повторной обработки NTFS, которые представляют собой объекты файловой системы NTFS, представленные в Windows 2000.

Точка повторной обработки NTFS - это тип объекта файловой системы NTFS. Точки повторной обработки обеспечивают способ расширения файловой системы NTFS путем добавления дополнительной информации к записи каталога, поэтому фильтр файловой системы может интерпретировать, как операционная система будет обрабатывать данные. Это позволяет создавать точки соединения, символические ссылки NTFS и точки монтирования тома, а также является ключевой функцией иерархической системы хранения Windows 2000.

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

Точка соединения NTFS - это мягкая ссылка, которая означает, что она просто ссылается на имя файла. Это означает, что всякий раз, когда ссылка удаляется, исходные данные остаются нетронутыми ; но всякий раз, когда исходные данные удаляются, исходные данные исчезают .

Могу ли я также файлы софт-ссылок? Есть ли символические ссылки?

Да, когда появилась Windows Vista, они решили расширить функциональные возможности объектов файловой системы NTFS, предоставив символическую ссылку NTFS, которая является программной ссылкой, действующей так же, как точка соединения NTFS. Но может быть применен к файлу и каталогам.

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

Что такое жесткая ссылка и как она ведет себя в отличие от мягких ссылок?

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

Таким образом, данные больше не зависят от существования одной записи MFT . Пока существует жесткая связь, данные будут существовать. Это предотвращает случайное удаление в тех случаях, когда не требуется запоминать, где находился исходный файл.

Например, вы можете создать папку с «фильмами, которые мне еще предстоит посмотреть», а также папку «фильмы, которые я беру в отпуск», а также папку «любимые фильмы». Фильмы, которые не относятся ни к одному из них, будут надлежащим образом удалены, в то время как фильмы, к которым они относятся, будут продолжать существовать даже после просмотра фильма.

Для чего нужна ссылка на точку монтирования тома ?

Некоторым ИТ или деловым людям может не понравиться запоминать или вводить различные буквы дисков, которые есть в их системе. Что на M:самом деле означает в любом случае? Это была музыка? Фильмы? Модели? Карты?

Microsoft сделала усилия в течение года, чтобы попытаться перенести пользователь далеки от work in drive C:до work in your user folder. Я, несомненно, могу сказать, что пользователи с UAC и проблемами с разрешениями - это те, которые не следуют этим рекомендациям, но не заставляют их задуматься:

Почему вы должны просматривать что-либо кроме ваших личных файлов ежедневно?

Точки монтирования тома - это профессиональный способ не ограничиваться буквами дисков, а иметь структуру каталогов, которая имеет для них смысл, но ...

Мои файлы находятся в разных местах, могу ли я использовать ссылки, чтобы собрать их вместе?

В Windows 7 библиотеки были введены именно для этой цели. Сделано с музыкальными файлами, которые находятся в этой папке, и этой папке, и этой папке . На более низком уровне библиотеку можно просматривать как несколько ссылок. Они снова реализованы как объект файловой системы, который может содержать несколько ссылок. По сути, это отношения один ко многим ...

Мой мозг взрывается ... Можете ли вы обобщить, когда их использовать?

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

  • Точки соединения: используйте их, если вы хотите, чтобы каталог находился где-то еще, это позволяет перемещать каталоги на более быстрые или медленные диски без потери доступа к исходному пути. Другое использование, когда вы хотите получить доступ к каталогу по другому пути. Они не могут быть использованы для ссылки на общий ресурс.

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

  • Жесткие ссылки: используйте их, когда вы хотите, чтобы файл исчез, только когда все жесткие ссылки на него удалены. Это не может быть использовано для папок.

  • Точки монтирования тома. Используйте их, если у вас закончились буквы диска или если вам удобнее получить доступ к тому через путь, а не через букву диска.

  • Библиотеки: используйте их, когда у вас есть один и тот же тип файла во многих разных местах, и вам нужно, чтобы они были вместе, это поддерживает съемные диски, поэтому удобно, чтобы папки на ваших съемных дисках отображались между папками на вашем компьютере, когда вы вставляете Это. Вы можете щелкнуть отдельные папки в дереве папок под библиотекой в ​​виде дерева, что облегчает перемещение файлов между ними.

Библиотеки на уровне оболочки похожи на ссылки быстрого доступа, верно? Medinoc 9 лет назад 0
@Medinoc: Нет, они агрегируют контент из нескольких мест. Tom Wijsman 9 лет назад 0
Но делают ли они это на уровне файловой системы таким образом, что, скажем, cmd.exe и `dir` могут перечислять агрегированный контент (в этом случае, где они находятся в файловой системе, я не могу его найти), или делаем они объединяются только на уровне оболочки, где только Windows Explorer и файловые диалоги могут показать их? У меня сложилось впечатление, что это последнее, но ваше «Нет» оспаривает это, если я не написал свой вопрос неправильно (я хотел сказать * «Библиотеки на уровне оболочки, как ссылки быстрого доступа **, **, верно?» *). Medinoc 9 лет назад 1
@Medinoc: это файлы в `C: \ Users \ \ AppData \ Roaming \ Microsoft \ Windows \ Libraries`. Tom Wijsman 9 лет назад 0
Спасибо, я могу проверить, что все, что не является Shell, просто видит их как обычные файлы. Это отвечает на мой вопрос. Medinoc 9 лет назад 0
@ TomWijsman, Помимо встроенных библиотек, как мы можем создать наши собственные «библиотеки» для агрегирования контента нескольких мест определенным образом? Pacerier 9 лет назад 0
@Pacerier: перейдите в проводник Windows. Убедитесь, что вы находитесь в «Библиотеки», вы можете ввести это в адресной строке без кавычек. Затем щелкните правой кнопкой мыши на пустом месте; в появившемся меню нажмите «Создать», затем «Библиотека». Tom Wijsman 9 лет назад 0
@ TomWijsman, я вижу, что в разделе «Управление» мы можем даже удалить библиотеки по умолчанию! Насколько это безопасно? Pacerier 9 лет назад 0
@Pacerier: сложный вопрос; как и во всем, я думаю, что ответ на этот вопрос «зависит от программного обеспечения, которое вы запускаете». Как может быть программное обеспечение, использующее функции API библиотеки. Tom Wijsman 9 лет назад 0
@ TomWijsman, я имею в виду не спрашивать программное обеспечение сторонних производителей, но Windows потерпит неудачу? Pacerier 9 лет назад 0
@Pacerier: Windows использует старую систему определения местоположения, где вы можете, например, перемещать музыкальную папку из ее свойств. Библиотеки - это новое дополнение, которое сама ОС практически не использует. Поэтому я сомневаюсь, что что-нибудь сломается; поскольку они предназначены исключительно для демонстрационных целей, ... Tom Wijsman 9 лет назад 1
@ TomWijsman, Хорошее рассуждение, они больные, я их потом удалю. Pacerier 9 лет назад 0
8
GeminiDomino

Если вы используете Windows Vista или более позднюю версию и обладаете правами администратора, вы можете проверить команду mklink (это инструмент командной строки). Я не уверен, какова symlink-y на самом деле, так как Windows дает ему маленький значок стрелки, который он ставит на ярлыки, но быстрый тест notepad ++ для текстового файла показывает, что он может работать для того, что вы ищете.

Вы можете запустить mklink без аргументов для быстрого руководства по использованию.

Надеюсь, это поможет.

mklink использует точки соединения NTFS (я думаю, именно так они и называются) для более или менее идеального дублирования ссылок в стиле Unix. Однако Windows может сказать, что это перекресток, поэтому ему будет присвоен традиционный значок стрелки. iirc вы можете удалить это с помощью некоторых изменений реестра, но я не помню где. jcrawfordor 12 лет назад 0
@jcrawfordor: структуры диска являются ["точками повторной обработки"] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503%28v=vs.85%29.aspx). Соединения и символические ссылки - это два разных типа точек повторной обработки; Точки монтирования громкости третьи. grawity 12 лет назад 2
И да, @Gemini, символические ссылки, созданные mklink, были специально реализованы для работы [точно так же, как и для Unix] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365680%28v=vs. 85% 29.aspx). grawity 12 лет назад 1
Спасибо благодарность за подтверждение. Я никогда не играл с ними много, поэтому я просто хотел включить disclaim.h;) GeminiDomino 12 лет назад 0
2
barlop

this article has some distinctions

one important distinction is that in a sense, junctions pre win7 were a bit unsafe, in that deleting them would delete the target directory.

http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/

A Junction Point should never be removed in Win2k, Win2003 and WinXP with Explorer, the del or del /s commands, or with any utility that recursively walks directories since these will delete the target directory and all its subdirectories. Instead, use the rmdir command, the linkd utility, or fsutil (if using WinXP or above) or a third party tool to remove the junction point without affecting the target. In Vista/Win7, it’s safe to delete Junction Points with Explorer or with the rmdir and del commands.