В какой файловой системе не поддерживается понятие hardlink?

16 ответов на вопрос “В какой файловой системе не поддерживается понятие hardlink?”

  1. NightRidersYT Ответить

    Используя жёсткие ссылки файлов и каталогов, можно иметь несколько различных имён файлов или каталогов, ссылающихся на одни и те же данные. В windows механизм работает в файловой системе NTFS. Статья о том, как сделать такие ссылки в windows. Возможно вы сталикивались со следующими задачами:
    Установить приложение или игру на HDD диск, а часть перенести на SSD.
    Перетащить данные приложения, без правки конфигурации. (пример ниже для SQL Server)
    Приложение/данные не влазят на один диск, а на другом диске как раз есть свободное место под оставшуюся часть.Всё это можно решить используя ссылки на файлы и каталоги. Например, начиная с Windows Vista в винде отсутствует каталог “Documents and Settings” а операционная система на него ссылается из папки “Users” для совместимости с приложениями написанными для Windows XP.

    Создание символической ссылки

    Для создание ссылки используется команда mklink (из командной строки, кэп).mklink
    Создает символьную ссылку.
    MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение
    /D Создает символьную ссылку на каталог.
    По умолчанию создается символьная ссылка на файл.
    /H Создает жесткую связь вместо символьной ссылки.
    /J Создает соединение для каталога.
    Ссылка Указывает имя новой символьной ссылки.
    Назначение Указывает путь (относительный или абсолютный), на который ссылается
    новая ссылка.Мне недавно хотелось удалить папку кеша обновлений Microsoft SQL Server, чтобы освободить 2 Гб на системном SSD диске. Вместо удаления я перенес данные на другой диск (D:). Cоздал символьную ссылку и, вуаля, место освобождено, а SQL Server думает, что данные на прежнем на месте.C:\>mklink /D “c:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Update Cache” “d:\distr\Sql Server\Update Cache”
    Символическая ссылка создана для c:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Update Cache <> d:\distr\Sql Server\Update CacheСуществуют инструменты для создание ссылок через графический интерфейс, например Link Shell Extension или NTFS Link , также их можно легко сделать в Far’е по Alt+F6

    Отличия жестких ссылок от символических ссылок и связей

    Материал из справки Far Manager.На разделах NTFS можно создавать жёсткие ссылки (HardLink) для файлов, связи (Junction) для папок и символические ссылки (SymLink) для файлов и папок с помощью команды Alt-F6.

    Жёсткие ссылки

    Жёсткая ссылка (HardLink) – это просто ещё одна запись в папке для данного файла.Когда создаётся жёсткая ссылка, сам файл не копируется физически, а только появляется под ещё одним именем или в ещё одном месте, а его старые имя и местонахождение остаются нетронутыми. С этого момента жёсткая ссылка неотличима от первоначальной записи в папке. Единственное отличие – то, что для жёсткой ссылка не создаётся короткое имя файла, поэтому из ДОС-программ она не видна.Когда меняется размер или дата файла, все соответствующие записи в папках обновляются автоматически. При удалении файла он не удаляется физически до тех пор, пока все жёсткие ссылки, указывающие на него, не будут удалены. Порядок их удаления значения не имеет. При удалении жёсткой ссылки в корзину количество ссылок у файла сохраняется.FAR умеет создавать жёсткие ссылки, отображать их количество для каждого файла в отдельной колонке (по умолчанию это последняя колонка в 9-м режиме панелей), а также сортировать файлы по количеству жёстких ссылок.Создавать жёсткие ссылки можно только на том же диске, на котором расположен исходный файл.

    Связи

    Эта технология позволяет отображать любые локальные папки на любые другие локальные папки. Например, если папка D:\SYMLINK указывает на C:\WINNT\SYSTEM32 в качестве своей цели, то программа, обращающаяся к D:\SYMLINK\DRIVERS, будет на самом деле обращаться к C:\WINNT\SYSTEM32\DRIVERS. В отличие от жёстких ссылок, связи папок не обязательно должны располагаться на том же диске. В Windows 2000 нельзя напрямую создать связь, ссылающуюся на папку CD-ROM, но это ограничение можно обойти, смонтировав CD-ROM диск на папку NTFS-раздела.

    Символические ссылки

    Символические ссылки (SymLink) на NTFS поддерживаются, начиная с Windows Vista (NT 6.0). Они представляют собой улучшенный вариант связей каталогов – символические ссылки могут указывать как на папки, так и на файлы, как на локальные, так и на сетевые, при этом поддерживаются относительные пути.

  2. Smoking Ответить

    Сегодня с утра появилась задача — из закрытой для общего доступа сетевой папки на файловом Windows-сервере выложить выборочно некоторое количество файлов в общую папку. Сразу в голове образовалась масса неприятных мыслей, относительно и проблем совместной работы, и потери дискового пространства, и так далее. Но через несколько секунд я предложил самому себе воспользоваться замечательной возможностью файловой системы NTFS — жесткими ссылками.
    Суть идеи: есть пара папок с открытым по сети доступом. На первой действует запрет на чтение для всех и разрешение для специфичной группы. На второй папке открыт доступ для всех пользователей. Чтобы разрешить всем пользователям несколько выборочных документов из первой папки, я создал жесткие ссылки на требуемые документы. Таким образом, удалось избежать всех возможных негативных моментов.
    Для простого создания ссылок я использую Link Shell Extension. Выделяем требуемые к публикации файлы в папке-источнике, правой кнопкой мыши выбираем Pick Link Source, переходим в папку-получатель и по правому клику выбираем Drop HardLink.
    Надеюсь, что данное решение будет кому-то полезно.
    Ранее на Хабре уже писали о теории символьных и жестких ссылок.

  3. Doomwind Ответить

    Символические ссылки легко определить – в файловом менеджере их видно по значку, а в результатах команды dir напротив ссылок пишется SYMLINK. Жесткие ссылки не очевидны, в прямом смысле этого слова.
    Проверить уникальность блокнота можно в командной строке, запущенной от имени администратора. Команда fsutil покажет вам жесткие ссылки на файл:
    fsutil hardlink list %windir%\notepad.exe

    Сюрприз! Блокнотов в Windows 7 не два, а четыре! Как видите, еще два обнаруживаются в папке winsxs.
    А в 64-разрядной Windows 7 их вообще шесть.
    Увеличить рисунок
    Это связано с тем, что в папке System32 лежат 64-разрядные версии файлов, в том числе блокнот (я выделил еще одну занятную нестыковку Windows, уходящую корнями в прошлое).  А в папке SysWOW64 хранится 32-разрядная версия notepad.exe, которая имеет свою жесткую ссылку в папке winsxs, в чем вы можете убедиться самостоятельно.
    Внушительное количество жестких ссылок подводит нас к вопросу использования ими дискового пространства.

    Сколько места на диске занимают жесткие ссылки

    Нисколько! В файловой системе NTFS каждый файл можно считать жесткой ссылкой на самого себя. На файл может ссылаться сколько угодно жестких ссылок (точнее, не больше 1023). Они могут запускать его из разных расположений, и при этом неотличимы друг от друга в проводнике и результатах команды dir.
    Физически на диске присутствует только один файл, но нестыковка между структурой файловой системы и ее отображением в оболочке порождает вопросы и даже деструктивные действия.
    Самым ярким примером непонимания принципов работы и назначения жестких ссылок являются руководства по чистке папки winsxs. О ней меня недавно просил рассказать читатель блога Антон, и вот представился случай.
    Не пропустите рассказы о том, как грамотно уменьшить размер папки winsxs в Windows 7 и в Windows 8 и новее.
    Проводник видит папку winsxs так:

    Но в реальности папка содержит немного уникальных файлов, которые изначально занимают на диске в среднем 400 Мб. Эта цифра относится к Windows Vista, и логично предположить, что в Windows 7 дело обстоит примерно так же (по крайней мере, понятен порядок цифры).
    Все остальные файлы с помощью жестких ссылок проецируются в папки Windows, System32 и т.д. Появление папки winsxs связано с изменением платформы Windows, которая теперь складывается из компонентов как дом из кирпичей. По сравнению с Windows XP такая модель упрощает развертывание и обслуживание WIM-образов. Это верно даже после установки системы, поскольку она представляет собой образ, примененный к диску. Например, список компонентов и их состояние можно посмотреть командой
    Dism /online /Get-Features
    Может показаться, что зачистка папки winsxs никак не нарушает нормальную работу системы. Так, Антон лишился только русского языка в Internet Explorer, причем с его слов исключительно по невнимательности. Однако нарушения нормальной работы Windows не всегда заметны, если они происходят под капотом системы.
    Для стабильной работы Windows необходимо нормальное управление компонентами, безотказное восстановление и правильное обновление.
    Так, содержимое папки winsxs используется для проверки системных файлов (SFC), а хранящиеся в ней версии файлов обеспечивают подбор наиболее подходящей версии при установке и удалении обновлений.
    Подробнее о назначении папки winsxs вы можете узнать из блогов создателей Windows и команды Windows Server Core (EN), а я предлагаю вернуться к разговору о жестких ссылках.

    Как создать жесткие ссылки

    Мы выяснили, что Microsoft использует жесткие ссылки для обеспечения совместимости (пример с блокнотами) и безотказного обслуживания операционной системы (пример с папкой winsxs). Предлагаю вам самостоятельно создать жесткие ссылки и поиграть с ними.
    Жесткие ссылки необязательно должны иметь такие же имена, как файл, на который они указывают. Это легко проверить:
    @echo off
    :: Переходим на рабочий стол
    cd %userprofile%\desktop
    :: Создаем произвольный текстовый файл
    echo Hello, Hard Links! > 1.txt
    :: Создаем жесткую ссылку на файл
    fsutil hardlink create 2.txt 1.txt
    :: Создаем жесткую ссылку на жесткую ссылку
    fsutil hardlink create 3.txt 2.txt
    pause
    Все три файла имеют одинаковое содержимое и атрибуты.

    Попробуйте изменить и сохранить третий файл, а потом открыть первый. Вы увидите сделанные вами изменения, хотя вы его не открывали до этого. Аналогично, если вы заблокируете изменения в любом файле атрибутом «Только для чтения», это немедленно отразится на всех ссылках.
    Хотите еще поэкспериментировать? Удалите один из файлов в корзину. Теперь откройте любой из оставшихся файлов и измените его, а затем восстановите удаленный файл. Вы обнаружите в нем изменения, произошедшие за то время, что он валялся в корзине!
    Кстати, вы заметили, что после удаления файла у его братьев на значке появился замок, загадка которого, похоже, до сих пор полностью не разгадана.

    Замок пропадает, как только вы возвращаете файл из корзины и обновляете папку или любой из файлов.

    Как ускорить свою работу с помощью ссылок

    В комментариях все к той же записи про AppPath читатель jakv поделился своим опытом использования ссылок.
    Имею папку MyTools, добавленную в PATH. В папку помещаю символические ссылки с краткими именами на необходимые мне программы. В результате при вызове программы не нужно вводить полный путь.
    Раскрывая этот пример, допустим, что у вас утилита Process Explorer лежит в папке D:\Sysinternals. Можно назначить ей псевдоним pe одной командой, используя символическую или жесткую ссылку на выбор.
    Вы уже видели, как создает ссылки fsutil. Давайте теперь сделаем это командой mklink.
    :: Символическая ссылка на файл
    mklink D:\MyTools\pe.exe D:\Sysinternals\procexp.exe
    :: Жесткая ссылка на файл
    mklink /h D:\MyTools\pe1.exe D:\Sysinternals\procexp.exe
    Во втором случае я использовал другой псевдоним, т.к. не получится создать в папке два файла с одинаковым именем.

    В отдельном столбце проводника я отобразил атрибуты файлов, чтобы показать, что буква L обозначает символическую ссылку. Вы также можете добавить столбец «Цель ссылки», чтобы посмотреть, куда она ведет. Этот рисунок также хорошо подчеркивает разницу между жесткими и символическими ссылками. Первые являются полноценными файлами, а вторые больше похожи на ярлыки.
    Из своей практики я уже делился примером укрощения программы, в которой был зашит абсолютный путь к одной из папок профиля. Кстати, пример резонирует с причиной наличия  блокнота в каждой из системных папок. А недавно я решил перенести одну папку в другое место. Поскольку ранее я создал на нее ссылки в реестре, символическая ссылка избавила меня от необходимости выполнять поиск и замену пути в нем.

    В чем разница между жесткими ссылками, символическими ссылками и соединениями

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

    Создание и удаление связей

    Команда mklink в Windows 7 и Vista умеет создавать все три типа связей. Жесткие ссылки можно создать только на файлы, но не на папки — для этого исторически существуют соединения.
    Символические ссылки совмещают в себе свойства соединений и жестких ссылок. Для пользовательских задач их вполне достаточно, и в большинстве случаев не возникает необходимости в применении других способов.
    Удаление ссылок в Windows 7 и Vista не несет в себе особых сюрпризов, поскольку целевые файлы и папки остаются в целости и сохранности. Внимательным нужно быть лишь при рекурсивном удалении файлов из папки командой del /s, т.к. при этом будут удалены все файлы в целевой папке.

    Сравнительная таблица

    Для полноты картины в таблице отражены некоторые возможности, которых я не касался в своих материалах.
    Возможность
    Символическая
    (symbolic link)
    Жесткая
    (hard link)
    Соединение
    (junction)
    Файловая система
    NTFS
    NTFS
    NTFS
    Ссылка на локальную папку
    Да
    Нет
    Да
    Ссылка на локальный файл
    Да
    Да
    Нет
    Ссылка на сетевую папку или файл
    Да (UNC путь)
    Нет
    Нет
    Относительный путь в ссылке
    Да
    Нет
    Нет
    Связь между томами*
    Да
    (абсолютные ссылки)
    Нет
    Да
    (локальные тома)
    Команда для просмотра ссылок
    dir
    fsutil
    dir
    * Не путайте том с диском или разделом. Тома могут включать в себя несколько разделов или даже дисков. Подробнее читайте в статье о конфигурировании динамических томов (мой перевод 2006 года:)
    Различные типы связей между папками и файлами дают файловой системе NTFS преимущества, которые Microsoft использует для обеспечения совместимости приложений и стабильной работы Windows. В немалой степени именно по этой причине уже третье поколение систем Microsoft не устанавливается на файловую систем FAT32.

    Проголосовавших за первые два пункта я прошу объяснить источники беспокойства, а выбравших п.1 еще и причину выделения под систему столь малого раздела. И расскажите в комментариях, сколько вы у себя насчитали блокнотов 🙂 Нужна помощь с подсчетом?

  4. Forceshaper Ответить

    У меня есть файл с именем /etc/passwd i , и я хотел бы найти все жесткие ссылки на этот файл в каталоге. Как узнать все остальные жесткие ссылки в каталоге /etc/passwd in/backups/ ? Как найти все жесткие ссылки на данный файл с помощью командной строки Linux или Unix?
    Вы можете использовать команду find  в Linux, Apple MacOS, FreeBSD и других операционных системах, чтобы узнать все жесткие ссылки.

    Как найти все жесткие ссылки на предоставленный файл

    Жесткая ссылка – это не что иное, как конкретное местоположение физических данных. Вы даете разные имена, относящиеся к одному и тому же файлу. Файл относится к тому же inode, что и имя. Жесткие ссылки на файл foo можно создать следующим образом:
    $ ln foo bar
    $ ln foo dir2/foobar
    В приведенном выше примере bar и foobar являются другими именами файла foo. Lля поиска всех жестких ссылок для файла foo в текущем каталоге cинтаксис будет выглядеть следующим образом:
    find /dir/to/search/ -samefile /path/to/file/name
    ## To find out all hard links to foo, use this command:
    find / -samefile foo
    find / -xdev -samefile foo

    Примеры

    Если есть файл с именем /etc/passwd  и вам нужно получить все жесткие ссылки на него, которые существуют в каталоге /backups/ , запустите:
    $ find /backups/ -samefile /etc/passwd
    Примеры возможных выводов данных:
    /backups/hourly.0/etc/passwd
    /backups/hourly.4/etc/passwd
    /backups/hourly.3/etc/passwd
    /backups/daily.0/etc/passwd
    /backups/hourly.1/etc/passwd
    /backups/hourly.2/etc/passwd
    Если вы не хотите спускать каталоги на другие файловые системы, смонтированные однажды, попробуйте ввести:
    $ find /backups/ -xdev -samefile /etc/passwd

    Найдите и удаляйте все жесткие ссылки на файл с именем foo в /tmp/ директории

    Введите следующую команду:
    $ find /tmp/ -xdev -samefile foo -print0 | xargs -I {} -0 rm -v {}
    Примеры возможных выводов данных:
    removed ‘/tmp/dir2/foobar’
    removed ‘/tmp/foo’
    removed ‘/tmp/bar’

    Справка, параметр -samefile не поддерживается моей командой find

    Найдите номер файлов inode, для этого введите:
    $ ls -li fileNameHere
    $ ls -li /tmp/demo.txt
    Примеры возможных выводов данных:
    4065089 -rw-r–r– 3 vivek vivek 8 Feb 26 02:19 /tmp/demo.txt
    Первый столбец вышеприведенного вывода отображает индекс inode # 4065089 . Теперь альтернативный синтаксис выглядит следующим образом для поиска всех жестких ссылок (hard link) для файла с именем /tmp/demo.txt , используя inode # 4065089 :
    $ find /tmp/ -inum 4065089
    $ find /tmp/ -xdev -inum 4065089
    Примеры возможных выводов данных:
    /tmp/demo.txt
    /tmp/dir2/file2.txt
    /tmp/file1.txt
    Чтобы найти и удалить все жесткие ссылки (hard link) на файл с номером inode # 4065089 , запустите:
    $ find /tmp/ -xdev -inum 4065089 | xargs rm -v
    $ find /tmp/ -xdev -inum 4065089 -print0 | xargs -I {} -0 rm -v {}
    Вот пример моей сессии:
    Рисунок 01: Как найти все жесткие ссылки (hard link) на заданное имя файла.
    Перевод: Анна Давыдова
    Источник: cyberciti.biz
    Это интересно:
    Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Linux (LAMP)
    Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10
    Установка Adobe Photoshop CS6 на Linux (очень простой способ)

  5. Zulkigrel Ответить

    Если вам когда-то приходилось просматривать расположения файлов штатных программ Windows, то возможно вы замечали одну странность. Некоторые файлы приложений дублируются, причем несколько раз. Например, в 64-разрядной Windows 8.1 обнаруживается целых 6 исполняемых файлов Блокнота notepad.exe, находящихся в разных каталогах системного раздела. Зачем вообще нужно такое странное дублирование?
    А необходимо оно для обеспечения совместимости со сторонними приложениями, использующими Блокнот для каких-то своих нужд. Причина проста – в разных программах прописанный путь к Блокноту может отличаться, и чтобы исключить проблемы, разработчики Microsoft решили разместить notepad.exe в нескольких местах. То же самое касается ряда других штатных приложений, например, WordPad.

    Жесткие ссылки или Hard Link

    На самом деле дублирование совсем необязательно должно иметь место. То, что вы видите и определяете как реальный файл, в действительности может оказаться Hard Link — ссылкой особого типа, используемой для формирования путей к какому-нибудь файлу. Такие ссылки называются жесткими. Любопытно, что файл в NTFS может иметь до 1023 жестких ссылок, и все они будут выглядеть как его точная копия за исключением имени и размера. Как и ярлыки, жесткие ссылки могут иметь разные имена.
    Зато содержимое и атрибуты у них общие, и если вы измените их в одной такой ссылке, то изменения коснуться всех остальных ссылок, даже тех, которые были удалены в Корзину. Что касается размера жестких ссылок, то это всего лишь одна видимость. Не имеющие практически никакого веса, ссылки этого типа определяются Проводником как имеющие реальный вес файлы, что иногда вызывает у пользователей немало вопросов и затруднений при ручной очистке ряда системных каталогов, того же Winsxs. Есть у Hard Link и свои ограничения. Так, создавать жесткие ссылки можно только на файлы и только в пределах одного тома.
    К счастью, сталкиваться с жесткими ссылками рядовым пользователям приходится нечасто, иначе это наверняка бы привело к неразберихе и серьезным проблемам. Описывать все особенности поведения жестких ссылок мы не будем, так как это заняло бы слишком много времени. Вместо этого предлагаем вам создать Hard Link самостоятельно и поэкспериментировать с ними. Вот вам пример. Создайте на рабочем столе простой текстовый файл file1.txt и что-нибудь напишите в него. Теперь откройте командную строку и создайте на него пару жестких ссылок с именами file2.txt и file2.txt. Вот так:
    cd %userprofile%\desktop
    fsutil hardlink create file2.txt file1.txt
    fsutil hardlink create file3.txt file1.txt

    Обратите внимание, что после команды create первым идет имя жесткой ссылки, а затем имя оригинального файла. Также вы можете создавать жесткие ссылки на другие жесткие ссылки. В общем, развлекайтесь. Уверен, что вы найдете для себя немало интересного.

  6. Gramath Ответить

    2013_12_11 : подскажите инструмент для работы с хардлинками
    2013_12_11 :
    2013_12_11 : 1)
    2013_12_11 : К примеру у менять есть 63 фотографий в папке весом 70мб.
    2013_12_11 : Создаю подпапку в этой папке.
    2013_12_11 : В подпапке создаю 63 хардлинка на файлы фотографий
    2013_12_11 : Total commander и проводник показывают общий вес папки 140мб
    2013_12_11 : http://lh6.ggpht.com/-QTLJl0gXddg/UqgmFfOY5eI/AAAAAAAADPw/whI4j3rnszE/s0/img01ca9eb49029161e8d31a6ef24804eb4.jpg
    2013_12_11 : Каким инструментом удобно видеть реально занимаемое дисковое пространство
    2013_12_11 :
    2013_12_11 : 2)
    2013_12_11 : К примеру нужно удалить некий файл.
    2013_12_11 : Хочется удалить файл и все хардлинки на него
    2013_12_11 : Хардлинки могут не совпадать по имени с файлом.
    2013_12_11 : Как отыскать все хардлинки чтобы их удалить.
    2013_12_11 :
    2013_12_11 : 3)
    2013_12_11 : Иногда хочется некий файл переименовать более человекопонятным образом.
    2013_12_11 : Хочется переименовать так, чтобы все хардлинки были переименованными тоже.
    2013_12_11 : Как провести переименование такое.
    ———————————————————————————————————————————-

  7. Griwield Ответить

    CaptainFlint

    Silver MemberРедактировать | Профиль | Сообщение | Цитировать | Сообщить модераторуПо-видимому, у нас некоторое разногласие в терминах. Попробую систематизировать. Заранее извиняюсь за длинный пост.
    Прежде всего хочу уточнить, что я сейчас буду рассматривать работу исключительно с точки зрения обычного пользователя, который знать не знает про всякие MFT, файловые потоки и т.д. Для него то, что мы называем файловыми записями (или ссылками) – это просто файлы, и всё. В угловых скобочках я буду писать уточнения, “невидимые” для этого обычного пользователя, и там я буду использовать максмально корректную терминологию, обозначенную в первой же такой вставке.
    Итого:
    1. На диске (под диском здесь и далее я понимаю исключительно NTFS-раздел) существуют файлы и каталоги в стандартной древовидной организации. Для каждого из файлов можно определёнными методами узнать некую, пока что абстрактную, величину: счётчик жёстких ссылок (я пользовался двумя вещами: плагином собтственного изготовления и расширением оболочки Windows, которое добавляет в диалог свойств файла новую вкладку с информацией о количестве ссылок и о потоках, оба способа дают один результат, что неудивительно).
    2. Теперь что происходит, когда пользователь создаёт жёсткую ссылку. Пусть “оригинальный” файл – C:\123\file.dat, а тот, который создали – C:\456\file2.dat. Пользователь, создав этот второй файл, запрашивает количество ссылок у первого файла, и узнаёт, что теперь это число равно двум, тогда как раньше оно равнялось 1. Итого, пользователь теперь видит ДВА файла, у обоих одинаковое содержимое, одинаковый размер, атрибуты и т.д. При попытке изменить один файл, меняется и другой. Если пользователь попытается узнать число ссылок у ВТОРОГО файла, он получит то же самое значение – 2. Теперь если пользователь проведёт поиск всех файлов на диске, у которых счётчик ссылок равен двум, то он найдёт ДВА файла: C:\123\file.dat и C:\456\file2.dat.
    3. При удалении любого из этих двух файлов пользователь заметит, что свободное место на диске не увеличилось (так же, как при создании ссылки оно не уменьшалось), а счётчик другого (оставшегося) файла станет равным снова 1. Теперь у него снова один-единственный файл.
    Так вот, как несложно понять, этим пользователем являюсь я сам. Я ожидаю, что ситуация будет в точности такая, как я только что длинно и пространно описывал. Но, к моему удивлению, ситуация, наблюдаемая на моём диске, отличается от вышеописанной. Я вижу ОДИН файл , у которого счётчик ссылок равен ДВУМ, и поиск по всему диску не находит больше ни одного файла , у которого счётчик тоже был бы равен двум!
    Основная моя предпосылка: если счётчик равен двум, то значит, на диске просто обязаны находиться две различные файловые записи, ссылающиеся на одну MFT-запись. Эти файловые записи будут мне видны как самые обычные файлы. Но поиск, который, понятное дело, выполняется исключительно по файловым записям (не зная ни о каких MFT), находит только одну запись. Если она одна – то почему счётчик равен двум? Понятно, что данные файла находятся в единственном экземпляре, но счётчик-то считает не количество копий данных, а количество файловых записей, на эти данные ссылающихся!

  8. Flamewing Ответить

    Одним из способов организации объектов файловой системы в Windows является использование так называемых жёстких и символьных ссылок. Жёсткие ссылки или Hard Link обычно используются для создания путей к файлам, при этом ярлыки на них внешне практически ничем не отличаются от самих файлов. Создаются жёсткие ссылки с помощью команды fsutil hardlink create {hardlink} {file}, где hardlink – это ярлык жёсткой ссылки, а file – реальный объект файловой системы.
    Так как использование жёстких ссылок может вызвать неразбериху, для организации доступа к объектам файловой системы чаще используются символьные ссылки или иначе Symbolic Link. В отличие от Hard Link, они обладают большей гибкостью, позволяют создавать связи между томами, сетевыми и жёсткими дисками, поддерживают использование относительных путей. Создаются символьные ссылки командой mklink {путь}:/symboliclink.txt {путь}:/file.txt.
    В обоих случаях для создания жёстких и символьных ссылок используется командная строка, но также их можно создавать с помощью специальных утилит, что намного быстрее. Наиболее удобным и простым инструментом является Link Shell Extension – небольшая утилита, позволяющая создавать жёсткие и символьные ссылки на файлы и папки прямо из контекстного меню Проводника.

  9. VideoAnswer Ответить

Добавить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *