Не удалось создать символьную ссылку файл существует linux

Ошибка создания символьной ссылки

Я пытаюсь обновить glibc на своем компьютере с CentOS 6.7. Я выполнил шаги, указанные здесь.

Теперь, когда я это сделаю:

У меня указаны от GLIBCXX_3.4 до GLIBCXX_3.4.22.

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

Но получаю ошибку:

Я думал, что ошибка связана с теми же именами файлов и переименовал /opt/google/chrome/lib/libstdc++.so.6 в libstdc ++. So.6_new. Команда по-прежнему не работает.

Может кто-нибудь помочь мне разобраться в этом? Кроме того, это решение ошибки:

2 ответа

Я думал, что ошибка связана с одинаковыми именами файлов

Ошибка сообщает вам, что /usr/lib64/libstdc++.so.6 уже существует.

Если вы хотите его заменить, сделайте следующее:

и переименовал /opt/google/chrome/lib/libstdc++.so.6 в libstdc ++. so.6_new

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

Я скопировал содержимое файла /opt/google/chrome/lib/libstdc++.so.6 в /usr/lib64/libstdc++.so.6 и заставил его работать.

У этого есть недостаток: если /opt/google/chrome/lib/libstdc++.so.6 обновляется, копия в /usr/lib64 не обновляется. Вам, вероятно, следует вместо этого сделать ln -sf выше.

Для linux: 1. сначала проверьте в папке / etc / httpd / sites-enabled / файл yoursite.conf существует или нет

если доступно, то сначала скопируйте файл и

Источник

Что такое ошибка «не удалось создать символическую ссылку: файл существует»?

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

создать символическую ссылку с именем saga в моем Documents в моей папке home . Выход терминала:

Я проверял содержимое

/Documents с помощью ls -a, нет ничего, кроме . и .. . В общем, моя папка home пуста, это просто новая системная установка.

4 ответа

Это классическая ошибка . это наоборот:

, поэтому в вашем случае

должен работать. Обратите внимание:

/Documents/saga существует и не является каталогом, у вас тоже будет ошибка;

/Documents/saga существует и является каталогом, символическая ссылка будет

/Documents/saga/saga..doc (вы уверены в двойной точке?)

/Documents/saga не существует, символическая ссылка будет

/Documents/saga (как есть, без расширения).

Как ответил @Rmano в своем ответе , аргументы были в неправильном порядке. Я тоже часто делал ту же ошибку. Таким образом, я нашел

Неверный способ создания символических ссылок

Сначала перейдите в каталог, в котором вы хотите создать ссылку

Затем создайте ссылку с единственным аргументом .

Это создаст ссылку на текущий каталог с тем же именем, что и целевой.

У меня такое же сообщение об ошибке
при перенаправлении

from node.js v0.10.25
to node.js v4.2.3
поэтому я смотрю на man ln и используйте

Это работа, как я ожидал.

Не может быть несвязанным.
Для меня ссылка была мертва. Указание на существующую папку. Когда вы пытаетесь заменить его, оно не сработает с этим сообщением. ^ Поэтому достаточно простого rm linkName .

Читайте также:  Windows firewall rules order

Источник

Символические и жесткие ссылки в Linux. Команда ln


Что такое символические и жесткие ссылки в Linux. Чем они отличаются. Как создавать ссылки. Использование команды ln.

Что такое ссылка на файл в Linux

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

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

Что такое символические ссылки

Символическая ссылка (symbolic link) — это специальный файл, который является ссылкой на другой файл или каталог (их еще называют целевым файлом, целевым каталогом).

Символические ссылки также называют символьными, мягкими ссылками (soft links) или сим-ссылками (sym-link).

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

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

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

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

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

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

Что такое жесткие ссылки

Жесткая ссылка (hard link) является своего рода синонимом для существующего файла. Когда вы создаете жесткую ссылку, создается дополнительный указатель на существующий файл, но не копия файла.

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

В Linux каждый файл имеет уникальный идентификатор — индексный дескриптор (inode). Это число, которое однозначно идентифицирует файл в файловой системе. Жесткая ссылка и файл, для которой она создавалась имеют одинаковые inode. Поэтому жесткая ссылка имеет те же права доступа, владельца и время последней модификации, что и целевой файл. Различаются только имена файлов. Фактически жесткая ссылка это еще одно имя для файла.

Читайте также:  Повторите попытку загрузки возникла внутренняя проблема windows 10

Жесткие ссылки нельзя создавать для директорий.

Жесткая ссылка не может указывать на несуществующий файл.

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

Схематично отношение между исходным файлом, жесткой ссылкой и данными можно показать следующей схемой:

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

Кратко подведем итог, написанного выше.

Символическая ссылка:

  • Указывает на целевой файл или каталог. Фактически является небольшим файлом, содержащим путь до целевого файла.
  • Не содержит внутри себя содержимого самого файла. Содержит путь к целевому файлу.
  • Имеет собственные права доступа, которые не распространяются на целевой файл.
  • Удаление / переименование / перемещение целевого файла не обновляет автоматически ссылку. Ссылка начинает указывать на несуществующий файл, становится неработающей.
  • Изменение прав доступа у целевого файла не обновляет права доступа у ссылки.
  • Может быть создана для директории.
  • Ссылка и целевой файл имеют разные файловые индексы (inode) в файловой системе.
  • Может указывать на несуществующий файл.
  • Символическая ссылка может использовать относительный путь до целевого файла.

Жесткая ссылка:

  • Является своего рода еще одним именем на файл.
  • Не может указывать на директорию.
  • Нельзя создавать жесткие ссылки между файлами разных файловых систем.
  • Не может указывать на несуществующий файл.
  • Жесткая ссылка и файл, для которого она создавалась, имеют одинаковые индексы (inode) в файловой системе.

Как создавать ссылки в Linux. Команда ln

Для создания ссылок в Linux используется команда ln (от слова link).

Синтаксис команды ln :

Обычно используется только одна опция -s . Полный список опций можно получить, выполнив команду man ln.

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

Чтобы создать символическую ссылку, нужно выполнить команду ln с опцией -s :

Например, создадим в текущем каталоге символическую ссылку с именем mylink на файл /home/pingvinus/myfile :

Выполнив команду ls -li , можно увидеть, что ссылка myfile указывает на файл /home/pingvinus/myfile

Обратите внимание, что ссылка и целевой файл имеют разные inode (792300 и 787622. См. число в начале строки).

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

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

Создание жестких ссылок

Чтобы создать жесткую ссылку нужно использовать команду ln без опции -s .

Например, создадим жесткую ссылку с именем hardlinktofile на файл myfile.txt :

Выведем список файлов:

Можно заметить, что hardlinktofile и myfile.txt имеют одинаковый inode=787622, так как являются фактически разными именами для одного файла (inode которого 787622).

Также видно, что на данный inode имеется 2 ссылки (см. цифру 2 в 3-м столбце). Если мы удалим исходный файл, то количество ссылок на него уменьшается на 1, то есть на самом деле файл не удаляется, так как на него больше, чем 1 ссылка. И мы по прежнему можем работать с файлом по имени hardlinktofile.

Обратите внимание, что после выполнения команды rm, количество ссылок на файл стало равно 1.

Пример создания и использования жесткой ссылки:

Как удалить ссылку

Ссылки, как и обычные файлы, можно удалять, используя команду rm :

Читайте также:  Repair windows missing system file

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

Некоторые графические файловые менеджеры поддерживают создание символических ссылок. Чтобы создать символическую ссылку в таком файловом менеджере, достаточно кликнуть правой кнопкой мыши по файлу и выбрать в меню пункт Создать ссылку ( Create Link , Make Link ).

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

Резюме

Ссылки — это удобный инструмент при работе с файлами в Linux. Мы рассмотрели два вида ссылок, которые существуют в Linux. Рассмотрели отличия символических ссылок от жестких. Для создания ссылок используется команда ln . При повседневной работе обычно используются символические ссылки, в то время как жесткие ссылки используются редко.

Источник

UlyssesD Blog’s

Различные заметки о всем что меня интересует и что я могу.

вторник, 24 марта 2015 г.

Несколько Linux систем — одни общие документы (Вариант №2)

Так получилось, что у моей заметки Несколько Linux систем — одни общие документы образовалось продолжение. А произошло это после небольшой критики на разных форумах, большое спасибо Haron Prime за критику и совет.
О том как примонтировать необходимый раздел и автоматически его монтировать при старте системы, см. в первой заметке.
Первый вариант основывался на системном инструменте xdg-user-dirs, но далеко не все его устанавливают по умолчанию, в этом варианте мы будем использовать штатный инструмент *nix — ln — команда UNIX, устанавливающая связь между файлом и именем файла.

Основы работы с этим инструментом подробно рассказали на Хабрахабр, я углубляться не буду, а просто покажу пример как я это реализовал.
Считаем что раздел у нас уже примонтирован, и в моем случае он имеет вот такой путь — /media/ulyssesd/My_Home/ulyssesd а далее уже находятся все остальные каталоги (Документы, Музыка и прочая), а основной путь перед локальными файлами у меня получается вот такой — /home/ulyssesd/
При создании симлинка на каталог, может получится так что симлинк будет создан внутри самого каталога или получить вот такой ответ от системы

ln: не удалось создать символьную ссылку «/home/ulyssesd/Dropbox»: Файл существует

$ ln -s /media/ulyssesd/My_Home/ulyssesd/Видео /home/ulyssesd

#!/bin/sh
# Скрипт по привязке папок из каталога home/user
# к другому примонтировану разделу
# все операции проводятся с правами обычного пользователя
# . без использования sudo или прав root .
# . Перед запуском убедитесь что необходимый раздел примонтирован и доступен .
# Также необходимо проверить что бы все папки на которые делаются симлинки были пусты
# т.к. они будут удалены перед созданием симлинка
rm -fR

/Видео
ln -s /media/ulyssesd/My_Home/ulyssesd/Видео /home/ulyssesd
rm -fR

/Документы
ln -s /media/ulyssesd/My_Home/ulyssesd/Документы /home/ulyssesd
rm -fR

/Изображения
ln -s /media/ulyssesd/My_Home/ulyssesd/Изображения /home/ulyssesd
rm -fR

/Загрузки
ln -s /media/ulyssesd/My_Home/ulyssesd/Загрузки /home/ulyssesd
rm -fR

/Музыка
ln -s /media/ulyssesd/My_Home/ulyssesd/Музыка /home/ulyssesd
rm -fR

/Рабочий\ стол
ln -s /media/ulyssesd/My_Home/ulyssesd/Рабочий\ стол /home/ulyssesd
rm -fR

/Общедоступные
ln -s /media/ulyssesd/My_Home/ulyssesd/Общедоступные /home/ulyssesd
rm -fR

/Шаблоны
ln -s /media/ulyssesd/My_Home/ulyssesd/Шаблоны /home/ulyssesd
# Опционально для тех кто использует облачные хранилища
rm -fR

/Dropbox
ln -s /media/ulyssesd/My_Home/ulyssesd/Dropbox /home/ulyssesd
rm -fR

/Yandex.Disk
ln -s /media/ulyssesd/My_Home/ulyssesd/Yandex.Disk /home/ulyssesd

Все, мы решили поставленную задачу.

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

Источник

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