Вопрос

Я искал способ создания жестких ссылок под Windows и нашел эту страницу: http://technet.microsoft.com/en-us/library/cc788097.aspx

Чтобы опробовать это, я создал файл (1.txt) в корневом каталоге моего C:диск со 100 строками следующего содержания:

C:\1.txt (2.598 байт):

test test test test test

Затем я открываю командную строку и набираю:

fsutil hardlink create C:\2.txt C:\1.txt

Успех, 2.txt был создан, но когда я захожу посмотреть его размер, он имеет ровно 2.598 байт, а также заметил некоторое странное поведение (насколько я понимаю жесткие ссылки):

  1. Если я удалю 2.txt (файл с жесткой ссылкой) 1.txt, он не будет удален, и наоборот.
  2. Если я открою 2.txt после удаления 1.txt (исходный файл), содержимое останется прежним.

Чем команда создания fsutil hardlink отличается от команды копирования?И как я могу создать настоящую жесткую ссылку под Windows?

Я использую Windows XP SP 3, и моя файловая система - NTFS.

Это было полезно?

Решение

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

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

Другие советы

Чем команда fsutil hardlink create отличается от команды copy?И как я могу создать настоящую жесткую ссылку под Windows?

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

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

Это настоящая жесткая ссылка.В UNIX (вариант для Windows мне не знаком) файл — это просто набор данных на диске (упрощенно).Имя этому файлу дает сама запись каталога.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top