Содержит ли мягкая привязка к каталогу жесткие ссылки на его подфайлы?

Предположим, что у меня есть следующая конфигурация:

  • Папка A
    • file1
    • file2

Затем я создаю мягкую ссылку из папки «А» следующим образом: ln -s AB чтобы мы теперь имели:

  • Папка A
    • file1
    • file2
  • Папка B (символическая ссылка для папки A (программная ссылка))
    • file1
    • file2

Теперь, когда я изменяю B/file1 , это изменение распространяется на A/file1 . Однако, похоже, что при использовании ls -l в BB/file1 и B/file2 не являются мягкими, связанными с A/file1 и A/file2 ! Что происходит?

Вопрос: Правда ли, что B/file1 жестко связан с A/file1 ? Другой способ расспросить об этом: верно ли, что когда вы софт-ссылку на каталог, что ее подфайлы становятся жесткими ссылками на подфайлы исходного каталога? Есть ли способ сделать все возможное?

2 Solutions collect form web for “Содержит ли мягкая привязка к каталогу жесткие ссылки на его подфайлы?”

Они не являются жесткими ссылками по двум причинам:

  1. Количество жестких ссылок для файлов в каталогах с программными ссылками, представленное через ls, равно 1. Если файлы были жестко связаны, счетчик будет равен 2 или более.
  2. Жесткие ссылки не могут охватывать файловые системы, в то время как софт-ссылки могут. Если бы были созданы жесткие ссылки, вы не смогли бы софт-каталогов ссылок в файловых системах.

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

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

Кажется, вы путаете вещи.

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

Hardlink : жесткая ссылка – это присвоение имени файлу (именно номер inode файла). Это отношение называется сюръективным . Каждый файл имеет по крайней мере один hardlink, ссылающийся на его номер inode. Номер inode является ссылкой на файл. Таким образом, современные файловые системы не имеют назначения исправлений имени файла и фактического файла.

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


Так это была теория.

Когда вы меняете B/file1 тогда также изменяется A/file1 , потому что это та же самая жесткая ссылка, ссылающаяся на тот же номер inode, который ссылается на тот же файл. Вы просто перешли через символическую ссылку A указывающую на каталог B , а не на реальный каталог B

  • Установка компакт-диска ярлыка
  • В Ubuntu есть ли способ практически объединить две папки без unionfs или aufs?
  • Wikilink к символической ссылке в ikiwiki
  • Действительно ли жесткие ссылки занимают столько места на диске?
  • Символы внутри установленных cifs отображаются как каталоги
  • realpath -L vs -P
  • изменить дату символической ссылки на bindfs
  • Найти все файлы / файлы, на которых есть ссылки на них?
  • Файловая система Docker - совместимость с символическими ссылками
  • Символы / программные ссылки с цветовой координацией на основе того, на что они ссылаются
  • Чего стоит?
  • Interesting Posts

    Нормальный звук прекращается, когда запускается jackd

    Заменить часть текстового файла с помощью скрипта bash

    Создание пользователя с помощью / sbin / nologin, любое преимущество для запуска passwd и установки на случайные

    Настройка цвета tmux hightlight

    Создание субтитров (.srt) больше или меньше с помощью mpv

    ifconfig: setifdhcp: операция не поддерживается

    Как я могу зашифровать свой предыдущий подраздел GPG после создания нового?

    Присоединение файлов на диске

    Прочитать команду интерактивно в цикле for

    Как сохранить / перезагрузить разделенные окна в vim?

    Как подключиться к Интернету автоматически, без ручного запуска `ethtool` каждый раз

    Как «вставить» гостевые дополнения изображения в VirtualBox из командной строки, а VM работает?

    Следующие версии LTS Ubuntu основаны на реальной тестовой версии Debian

    Почему pcmanfm такая головная боль, когда дело доходит до монтажа файловых систем?

    Aptitude – удаление автоматически установленных пакетов, рекомендованных другими пакетами

    Linux и Unix - лучшая ОС в мире.