Skip to content

Как создать мягкие жесткие ссылки в linux

Как создать мягкие жесткие ссылки в linux

Из этой статьи вы узнаете о том, как создавать жесткие и символические ссылки в Linux и работать с ними. Вы научитесь: Создавать жесткие и мягкие ссылки. Находить ссылки и определять их тип. Вы можете создать одну или несколько жестких ссылок для одного файла. Жесткие ссылки не могут быть созданы для каталогов и файлов в другой файловой системе или разделе. Мягкие ссылки. Soft link. Как создать USB-установку Windows в Ubuntu? что такое мягкие и жесткие ссылки, но нужно уточнить одну вещь. Нет. В Linux все работает по-другому. Каждый файл представлен объектом, называемым «inode». Мягкая ссылка в Linux аналог ярлыка в Windows. Поскольку жесткая ссылка указывает непосредственно на индексный дескриптор, а мягкая – только на жесткую ссылку, то если удалить все жесткие ссылки. Нет. В Linux все работает по-другому. Каждый файл представлен объектом, называемым «inode». У каждого inode есть число (ID), связанное с ним. Как мы знаем, люди не умеют запоминать цифры, но имена.

Эта серия статей поможет вам освоить задачи администрирования операционной системы Linux. Вы также можете использовать материал этих статей для подготовки к экзаменам первого уровня сертификации профессионального института Linux LPIC Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит самые последние по состоянию на апрель года цели экзаменов сертификации LPIC Если какая-либо статья отсутствует в перечне, можно найти ее более раннюю версию, соответствующую предыдущим целям LPIC-1 до апреля года , обратившись к нашим руководствам для подготовки к экзаменам института Linux Professional Institute.

Из этой статьи вы узнаете о том, как создавать жесткие и символические ссылки в Linux и работать с ними. Вы научитесь:. Эта статья поможет вам подготовиться к сдаче экзамена LPI на администратора начального уровня LPIC-1 и содержит материалы цели Цель имеет вес 2.

Содержание

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать базовыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. Иногда различные версии программ выводят результаты по-разному, поэтому содержимое листингов и рисунков может отличаться от того, что вы увидите на вашем компьютере.

Можно ли декоративным кроликам листья лопуха

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

  • Можно ли покрасить замшевые сапоги
  • Ознакомьтесь со всеми статьями Яна EN , опубликованными на сайте developerWorks. Вы можете найти контактные данные в профиле Яна и связаться с ним, а также с другими авторами и участниками ресурса My developerWorks. Файлы и директории располагаются на устройстве хранения в виде набора блоков. Информация о файле такая, как владелец файла, время последнего обращения к файлу, размер файла, права на чтение или запись, является ли элемент файлом или директорией хранится в индексном дескрипторе inode.

    Сообщить об опечатке

    Номер inode, известный также как порядковый номер файла , является уникальным в пределах отдельной файловой системы. Запись каталога содержит имя файла или директории , а также указатель на дескриптор inode, в котором хранится информация об этом файле или директории. Ссылки — это просто дополнительные записи каталога, позволяющие обращаться к файлам или директориям по нескольким именам.

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

    Для символических ссылок также используется термин symlinks. Жесткие ссылки можно создавать только для файлов, но не для директорий. Исключение составляют специальные записи каталогов, указывающие на саму директорию и на ее родительскую директорию. Жесткие ссылки можно использовать только в пределах одной файловой системы, поскольку они являются указателями на дескрипторы inode, которые уникальны только в пределах отдельной файловой системы.

    Краткий обзор

    Если файл имеет несколько жестких ссылок, то он удаляется только тогда, когда удаляется последняя ссылка, указывающая на его inode, и счетчик ссылок сбрасывается до 0. Мягкая ссылка symlink просто указывает на имя другого файла или директории, а не на его inode. В отличие от жестких ссылок, мягкие ссылки могут указывать на объекты разных файловых систем. Удаление мягкой ссылки не приводит к удалению файла или директории, на которую она указывает, а удаление целевого объекта не приводит к автоматическому удалению мягких ссылок.

    Сначала я объясню, как создавать жесткие и мягкие ссылки, а потом научу вас находить и использовать их. Для создания дополнительных жестких ссылок на существующий файл но не на директорию, даже не смотря на то, что записи. В листинге 1 мы создаем директорию, содержащую два файла и поддиректорию subdir с двумя жесткими ссылками на файл file1; одна жесткая ссылка создается в самой директории, а другая — в поддиректории subdir.

    Затем в файлы file1 и file3 мы добавляем два разных слова и выводим содержимое ссылки, расположенной в поддиректории subdir. В результате мы видим, что оба файла и ссылка содержат одни и те же данные. Если вы попытаетесь создать жесткую ссылку, указывающую на объект за пределами файловой системы, или жесткую ссылку для директории, то вы получите ошибку. Из листинга 2 видно, что моя домашняя директория и директория research располагаются в различных файловой системах, поэтому попытка создать для них жесткие ссылки оканчивается неудачей, равно как и попытка создать жесткую ссылку для директории lpi Для создания символических ссылок используется команда ln с опцией -s.

    Символические и жесткие ссылки Linux

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

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

    Можно ли снять деньги в сбербанке по временному удостоверению личности

    В листинге 4 приведены некоторые примеры. Теперь создадим символическую ссылку, используя относительные пути, когда наша рабочая директория не является директорией, в которой мы хотим создать ссылку. В следующем разделе мы посмотрим, к чему это приведет. Цвета каждого объекта можно настраивать. При использовании этой опции жесткие ссылки могут отображаться белым цветом на темно-синем фоне, а символические ссылки — голубым цветом на белом фоне, как показано на рисунке 1.

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

    Как создать символические ссылки в Linux с помощью команды ln

    Если не брать в расчет цветовой вариант, то вам потребуется более подробная информация, например, информация, выводимая командой ls -l. Второй столбец вывода в листинге 6 содержит счетчик ссылок , показывающий количество жестких ссылок на файл. Таким образом, мы видим, что файлы file1, file3 и file3sub имеют по нескольку жестких ссылок, указывающих на представляемые ими объекты; тем не менее, этой информации еще недостаточно, чтобы понять, что все они представляют собой один и тот же объект.

    Если удалить файл, счетчик ссылок которого имеет значение больше 1, то счетчик ссылок в индексном дескрипторе понизится на 1, но файл не будет удален, пока счетчик не достигнет 0.

    Как создать мягкие жесткие ссылки в linux

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

    Удаление ссылки никак не влияет на целевой объект. Символические ссылки не защищают файлы от удаления; если целевой файл был перемещен или удален, ссылка становится "битой". По этой причине во многих операционных системах информация о содержимом директории выводится в цвете как правило, голубым цветом отображаются рабочие ссылки, а красным цветом — битые.

    Для вывода номеров индексных дескрипторов inode файлов и директорий используйте команду ls с опцией -i. В листинге 7 показан как краткий, так и подробный вывод содержимого директории lpi Для поиска символических ссылок можно также использовать команду find с выражением -type l , как показано в листинге 8.

    В листинге 5 мы создали заведомо неправильную символическую ссылку. Это лишь один из примеров "битой" символической ссылки. Поскольку жесткие ссылки всегда указывают на дескриптор inode, представляющий собой файл, они всегда действительны. Однако символические ссылки могут оказаться некорректными по многим причинам, например:.

    Создание ссылок (symlink) в Unix/Linux

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

    Если вы используете цветной вывод содержимого директорий, то "битые" символические ссылки, как правило, отображаются красным цветом на черном фоне, как в случае с файлом file6 рисунок 1. В противном случае для раскрытия информации о ссылке и ее целевом объекте необходимо использовать опцию -H или -L команды ls.

    Опция -H раскрывает информацию о ссылке, указанной в командной строке, а опция -L дополнительно выполняет эти же действия для всех ссылок, являющихся частью вывода.

    Индексный дескриптор

    В листинге 9 продемонстрированы различия при использовании этих двух опций. И последнее замечание, касающееся "битых" символических ссылок. Все попытки чтения из файла окончатся неудачей, поскольку он не существует. Однако попытки записи в этот файл при наличии необходимых разрешений окажутся успешными, как показано в листинге Для поиска файлов, являющихся жесткими ссылками на определенный inode, можно использовать команду find с опцией -samefile и именем файла или с опцией -inum и номером inode, как показано в листинге Для поиска файлов, являющихся символическими ссылками на определенный файл, используйте команду find с опцией -lname и именем файла, как показано в листинге Поскольку в ссылках могут использоваться как относительные, так и абсолютные пути, стоит добавить в начало имени файла символ звездочки, чтобы найти все совпадения без исключения.

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

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

    Ниппельные поилки для кроликов своими руками видео

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

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

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

    Как создать мягкие жесткие ссылки в linux

    Иногда новое имя команды, например genisofs, замещает собой старое имя этой же команды mkisofs , которое продолжает использоваться в качестве ссылки на новую команду. Ссылки активно используются системой альтернатив, позволяя вам выбирать для использования одну из нескольких альтернативных команд, таких как java. Некоторые примеры приведены в листинге Для работы с библиотеками также активно используются символические ссылки, которые позволяют программам обращаться к библиотекам по их общему имени при обновлении версии, а также управляют библиотеками в разрядных системах, в которых могут выполняться разрядные программы.

    Обратите внимание на то, что в некоторых ссылках используются абсолютные пути, а в некоторых — относительные. Для получения дополнительной информации об использовании ссылок обратитесь к man-страницам команды ln и других команд из этого руководства. Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них. Изучаем Linux, Работа с жесткими и символическими ссылками Использование нескольких имен для одного файла.