Linux как скопировать символическую ссылку

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Команда Ln: как создавать символические ссылки в Linux

Жесткие и мягкие ссылки

4 минуты чтения

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

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

В этом руководстве вы узнаете, как использовать команду ln для создания символических ссылок в Linux.

Команда Ln для создания символических ссылок

Чтобы использовать команду ln, откройте окно терминала и введите команду в следующем формате:

  • По умолчанию команда ln создает hard link (жесткая ссылка).
  • Используйте параметр -s , чтобы создать символическую ссылку, она же soft link.
  • Параметр -f заставит команду перезаписать уже существующий файл.
  • Source — это файл или каталог, на который делается ссылка.
  • Destination — это место для сохранения ссылки — если это поле не заполнено, символическая ссылка сохраняется в текущем рабочем каталоге.

Например, создайте символическую ссылку с помощью:

Это создает символическую ссылку link file.text , которая указывает на testfile.txt .

Чтобы проверить, создана ли символическая ссылка, используйте команду ls :

Создать символическую ссылку на каталог Linux

Символическая ссылка может относиться к каталогу. Чтобы создать символическую ссылку на каталог в Linux:

В этом примере создается символическая ссылка с именем stock_photos в домашнем каталоге

/ . Ссылка относится к каталогу stock_photos на внешнем диске external_drive .

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

Принудительно перезаписать символические ссылки

Вы можете получить сообщение об ошибке, как показано на изображении ниже:

Сообщение об ошибке означает, что в месте назначения уже есть файл с именем link_file.txt . Используйте параметр -f , чтобы система перезаписывала целевую ссылку:

Примечание. Использование опции -f навсегда удалит существующий файл.

Удаление ссылок

Если исходный файл будет перемещен, удален или станет недоступным (например, сервер отключится), ссылку нельзя будет использовать. Чтобы удалить символическую ссылку, используйте команду rm (remove) или unlink :

Читайте также:  Изменить профиль частная сеть windows 10

Команду ln можно использовать для создания двух разных типов ссылок:

  • Hard Links (жесткие ссылки)
  • Soft Links (символические или мягкие ссылки)

Символическая ссылка, иногда называемая мягкой ссылкой или soft link, указывает на расположение или путь к исходному файлу. Она работает как гиперссылка в Интернете.

Вот несколько важных аспектов символической ссылки:

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

Когда файл хранится на жестком диске, происходит несколько вещей:

  • Данные физически записываются на диск.
  • Создается справочный файл, называемый индексом, который указывает на расположение данных.
  • Имя файла создается для ссылки на данные inode.

Жесткая ссылка работает путем создания другого имени файла, которое ссылается на данные inode исходного файла. На практике это похоже на создание копии файла.

Вот несколько важных аспектов жестких ссылок:

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

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Что Такое Символическая Ссылка и Как Создать Симлинк в Linux

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

Что Такое Символическая Ссылка?

Символические ссылки служат не только для создания ярлыков и управления файлами в операционной системе Linux. Они также создают место под основные пользовательские папки, такие как «Документы», «Изображения», «Загрузки» и другие.

Символические ссылки позволяют создавать и хранить несколько файлов в разных местах компьютерной системы, при этом вести к ним будет один файл. Такой принцип работы напоминает ярлыки в Windows. Символическая ссылка повышает общую продуктивность работы, поскольку предоставляет доступ к документам одной командой.

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

Функции Linux настолько удобны, что даже Microsoft перенял их практику создания символических ссылок. Однако символическая ссылка, также известная как мягкая ссылка, или симлинк, не является уникальным явлением, характерным исключительно Linux. Они напоминают поиск в Windows, когда для того, чтобы найти файл или каталог, пользователь выполняет различные команды.

Читайте также:  Windows не может испорченного файла

Как Создать Символическую Ссылку в Linux

Итак, давайте разберёмся, как создать символические ссылки на файлы и папки в Linux.

Символическая Ссылка Linux на Файлы

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

Команда ln в Linux создает ссылки между исходными файлами и каталогами.

  • -s — команда для символических ссылок.
  • [целевой файл] — имя существующего файла, для которого вы создаёте ссылку.
  • [имя символической ссылки] — эта часть команды объясняет сама себя.

Проверить создалась ли ссылка можно с помощью команды вывода подробного списка содержимого каталога:

Однако, если вы не укажете [имя символической ссылки], команда автоматически создаст новую ссылку в существующем каталоге.

Символическая Ссылка Linux на Папки

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

Допустим, мы хотим связать каталог /user/local/downloads/logo с каталогом /devisers , вот как будет выглядеть команда:

Созданная и прикреплённая к папке /devisers , символическая ссылка будет вести к /user/local/downloads/logo . Когда пользователь меняет каталог — cd — на /devisers , система автоматически переключается на определённый файл и записывает его в каталог команды.

Опции символических ссылок называются переключателями командной строки. Вот наиболее распространённые из них и их описания:

Переключатель Описание
–backup[=CONTROL] резервное копирование каждого существующего файла назначения
-d, -F, –directory суперпользователь может использовать жесткую ссылку
-f, –force удаляет существующий файл назначения
-I, –interactive спрашивает перед удалением файлов назначения
-L, –logical разыменовывает символические ссылки
-n, –non-dereference обрабатывает символическую ссылку как обычный файл, если это символическая ссылка на каталог
-P, –physical делает жесткие ссылки непосредственно на символические ссылки, а не разыменовывает их.
-r, –relative создаёт символические ссылки относительно расположения ссылок
-s, –symbol создаёт символические ссылки вместо жестких ссылок
-S, –suffix=SUFFIX переопределяет обычный суффикс резервных копий
-v, –verbose выводит имя каждого файла при создании ссылки

Как Изменить или Удалить Символическую Ссылку в Linux?

Вы можете удалить существующие ссылки, прикреплённые к файлам или каталогам, с помощью команды unlink или rm. Вот как вы можете сделать это с помощью команды unlink:

Аналогичным образом удаляем символическую ссылку с помощью команды rm:

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

Итоги

Linux — замечательная платформа для разработки интерактивного и динамичного приложения, где вы можете экспериментировать и пробовать что-то новое. Но для этого вам нужна прочная база. Изучите основы языка, чтобы использовать весь потенциал платформы.

Читайте также:  Nike training club для windows

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

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Источник

Как копировать символические ссылки?

У меня есть каталог, содержащий некоторые символические ссылки:

Мне нужно скопировать их в текущий каталог. Результирующие ссылки должны быть независимы от их прототипов и вести непосредственно к их целевым объектам.

  • cp -s создает ссылки на ссылки, которые не соответствуют поведению.
  • cp -s -L отказывается копировать ссылки на каталоги
  • cp -s -L -r отказывается копировать относительные ссылки в нерабочий каталог

9 ответов

На странице man:

Лично я использую cp -av для большей части моего тяжелого копирования. Таким образом, я могу сохранить все — даже рекурсивно — и увидеть результат. Конечно, это личное предпочтение.

Что касается того, почему ваши другие варианты не сделали то, что вы ожидали, -s делает ссылку вместо для копирования, а -L следует за ссылки в источнике, чтобы найти файл для копирования вместо копирования самих ссылок.

Как сообщает man-страница, используйте -P .

Если ссылки содержат относительные пути, то копирование ссылки не будет регулировать относительный путь. Используйте readlink , с помощью переключателя -f , чтобы следовать рекурсивно, чтобы получить абсолютный путь к ссылке. Например:

Если сохранение относительных путей — это то, что вы хотите, то это то, что вам нужно. -P -P , как сказал Игнасио Васкес-Абрамс.

Как несколько комментировали:

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

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

Это избыток для копирования только нескольких символических ссылок, но если вы на самом деле пытаетесь скопировать целое дерево, это может быть очень полезно:

Используйте tar .

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

Этот трюк использует подоболочки, чтобы получить команду tar в позицию в корне каталога, подлежащего зеркалированию; вы можете оставить один из них (вместе с соответствующей командой cd ), если вы уже находитесь в каталогах src или dest :

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

Источник

Оцените статью