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

54

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

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

печенье
источник
это связано superuser.com/questions/343074/…
barlop
отличная статья здесь cects.com/… следите за заседаниями до
w7

Ответы:

57

Обратите внимание, что единственное печальное отличие состоит в том, что вам нужны права администратора для создания символических ссылок. То есть вам нужна повышенная подсказка. (Обходной путь - 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:

grawity
источник
40

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

Для получения информации о том , как определенная связь может быть сделана, обратитесь к 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
@Medinoc: Нет, они агрегируют контент из нескольких мест.
Тамара Вийсман
1
Но делают ли они это на уровне файловой системы таким образом, что, скажем, cmd.exe и dirмогут перечислять агрегированный контент (в этом случае, где они находятся в файловой системе, я не могу его найти), или они только агрегируют? на уровне оболочки, где только Windows Explorer и файловые диалоги могут показать их? Я был под впечатлением , он был последним, но ваши «Нет» проблемы это , если я не писал мой вопрос неправильно (я хотел сказать «Библиотека оболочка уровень , как контекстные ссылки являются , верно?» ).
Medinoc
@Medinoc: это файлы в C:\Users\{User}\AppData\Roaming\Microsoft\Windows\Libraries.
Тамара Вийсман
1
@Pacerier: Windows использует старую систему определения местоположения, где вы можете, например, перемещать музыкальную папку из ее свойств. Библиотеки - это новое дополнение, которое сама ОС практически не использует. Поэтому я сомневаюсь, что что-нибудь сломается; так как они предназначены исключительно для демонстрационных целей, ...
Тамара Вийсман
8

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

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

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

GeminiDomino
источник
mklink использует точки соединения NTFS (я думаю, именно так они и называются) для более или менее идеального дублирования ссылок в стиле Unix. Однако Windows может сказать, что это перекресток, поэтому ему будет присвоен традиционный значок стрелки. iirc вы можете удалить это с помощью некоторых изменений реестра, но я не помню где.
jcrawfordor
2
@jcrawfordor: структуры диска являются «точками повторной обработки» . Соединения и символические ссылки - это два разных типа точек повторной обработки; Точки монтирования громкости третьи.
grawity 18.10.11
1
И да, @Gemini, mklinkсделанные символические ссылки были специально реализованы, чтобы работать так же, как Unix .
Гравитация
Спасибо благодарность за подтверждение. Я никогда не играл с ними много, поэтому я просто хотел включить disclaim.h;)
GeminiDomino
2

эта статья имеет некоторые различия

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

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

Точка соединения никогда не должна удаляться в Win2k, Win2003 и WinXP с помощью Explorer, команд del или del / s или любой утилитой, которая рекурсивно просматривает каталоги, поскольку они удаляют целевой каталог и все его подкаталоги. Вместо этого используйте команду rmdir, утилиту linkd или fsutil (если используется WinXP или выше) или сторонний инструмент для удаления точки соединения, не затрагивая цель. В Vista / Win7 безопасно удалить точки соединения с помощью проводника или с помощью команд rmdir и del.

barlop
источник