Как мне сделать доступ к каталогам таким образом?

1

я имею C:\HardDrive1\name\ а также D:\HardDrive2\name, Я хочу сделать (по крайней мере, только для чтения) доступ к этим папкам в I:\name (например). Возможно ли это в Windows? Также мне интересно, есть ли UNIX способ сделать это?

ShyMan
источник
Windows 7 (и, возможно, Vista) имеет символические ссылки. старые окна имеют узлы В этом случае вам может потребоваться конкретная информация о версиях.
Journeyman Geek

Ответы:

1

В UNIX символические ссылки. Прочитайте справочную страницу для ln (использовать -s опция). Для Windows используйте junctions,

David Schwartz
источник
1
@ShyMan см. Также superuser.com/questions/67870/... который имеет все самые полезные ссылки на информацию о MS.
Psycogeek
1

В Windows 7 и Vista есть утилита командной строки mklink делать символические ссылки в остальном есть junction от sysinternals, который создает так называемый точки соединения ,

Некоторые вещи, которые нужно иметь в виду:

  • Соединения и символические ссылки - это программные ссылки между двумя каталогами.
  • Никогда не используйте рекурсивные инструменты удаления для удаления соединения (Windows 2000, XP), он удалит файлы внутри соединение в первую очередь (таким образом, удаляя реальные файлы). Используйте инструмент rmdir удалить точки соединения.
  • Если вы удалите символическую ссылку (сделанную с помощью mklink, Windows Vista и 7), она исчезнет.

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

  • это ОБЯЗАТЕЛЬНЫЙ чтобы оба раздела были отформатированы как NTFS сделать соединения или символические ссылки.

Использование:

Во-первых, создайте папку (и), на которую будет указывать ссылка (и) / символьная ссылка, в этом примере I:\name1 а также I:\name2, Соединениям нужна пустая папка NTFS для указания!

C:\>mklink /d "I:\name1" "C:\HardDrive1\name"
C:\>mklink /d "I:\name2" "D:\HardDrive2\name"

Или на XP используя junction.exe

C:\>junction /d "I:\name1" "C:\HardDrive1\name"
C:\>junction /d "I:\name2" "D:\HardDrive2\name"
sinni800
источник
Проблема в том, что я не хочу создавать только две ссылки I:\name1 I:\name2, Что мне действительно нужно, так это получить доступ к двум (или, возможно, большему количеству) путей с одного (виртуального) пути. Возможное решение - создать ссылку (соединение) для каждого файла (папки) из C:\HardDrive1\name D:\HardDrive2\name Z:\HardDrive1000\name в целевой директории I:\name, Это работает отлично. Но это безобразный взлом IMO (в моем случае мне нужно создать 100K ссылок на диск).
ShyMan
Вы не можете указать два перехода к одной и той же папке. Мое предложение заключается в том, чтобы просто переместить папки C: \ HardDrive1 в c: \ HardDrive1000 в одну папку c: \ HardDrives и выполнить соединение / mklink. Теперь вам нужен только один на диск, и вы все равно максимально на 26 дисков (от А до Я)
sinni800
@sinni, чепуха. Вы можете указать столько ссылок - будь то символические ссылки или переходы - сколько вы хотите в одном месте. (В конце концов, оба - просто точки повторного анализа, содержащие текстовый путь их цели, никакой глубокой магии. Из-за этого и того факта, что диски можно перемещать физически, реализация таких произвольных ограничений не только не нужна; это также невозможно.)
grawity
@sinni также не обязательно, чтобы цель файловая система NTFS; символические ссылки и соединения являются однонаправленными указателями на произвольный текстовый путь, и пока они могут быть созданы только в NTFS, они могут указывать в практически все (символические ссылки могут даже указывать на сетевые ресурсы)
grawity
@sinni, чтобы уточнить мой первый комментарий: одна ссылка может указывать точно на одну цель, но одна цель может иметь любой количество ссылок, указывающих на это.
grawity