Каков типичный реальный случай использования или применения символических / жестких ссылок в Linux?

Я понимаю концепцию ссылок в Linux, жестких или мягких.

может кто-нибудь, пожалуйста, скажите мне реальный случай использования?

зачем нам хранить несколько ссылок на один и тот же файл? Не Управления проблема?

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

7
задан Nicolas Kaiser
28.12.2022 17:53 Количество просмотров материала 2623
Распечатать страницу

5 ответов

каждый раз, когда вам нужно несколько имен для одной и той же вещи, вам нужна ссылка.

разделяемые библиотеки в Linux называются своими именами, как в этом примере:

lrwxrwxrwx. 1 root root     16 Dec  2 15:24 /usr/lib64/libcurl.so -> libcurl.so.4.2.0
lrwxrwxrwx. 1 root root     16 Dec  2 15:04 /usr/lib64/libcurl.so.4 -> libcurl.so.4.2.0
-rwxr-xr-x. 1 root root 380864 Sep 19 07:04 /usr/lib64/libcurl.so.4.2.0

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

Это также используется для таких программ, как /usr/bin/java. Java может быть предоставлен из разных источников. Это может быть IcedTea OpenJDK. Это может быть Sun JRE. Или это может быть версия IBM. Используя симлинк позволяющий системы до версии, умолчанию, сохраняя каждый в отдельном каталоге.

9
отвечен Zan Lynx 2022-12-30 01:41

упростить резервное копирование

вариант использования 1: перемещение документов в отдельный локальный раздел или раздел NFS

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

то, что я обычно делаю, - это символическая ссылка на папки, которые я хочу сохранить в отдельном разделе. К восстановите символические ссылки, я просто запускаю быстрый скрипт bash, чтобы восстановить ссылки после установки ОС.

Я бы просто назвал это резервное копирование ваших данных, но на самом деле нет дополнительного шага "резервное копирование". Хорошая часть заключается в том, что если вы случайно потянете нуб, например, "rm-rf", ваша файловая система, rm не следует символическим ссылкам, поэтому вы не потеряете свои файлы.

примечание: Я понимаю, что вы можете изменить местоположение /home с помощью/etc / fstab. Почему я не использую это техника заключается в том, что я хочу только выборочно связывать части своих пользовательских файлов и оставлять накопленный мусор.

вариант использования 2: Использование кроссплатформенного раздела (простой способ)

дополнительным преимуществом использования символических ссылок (soft links) является то, что они работают в разных файловых системах.

некоторые из нас не могут позволить себе роскошь (из-за потребностей бизнеса) использовать Linux в качестве нашей единственной ОС, поэтому мы часто возвращаемся назад и становимся четвертыми. Расширить случай 1, что мне лично сделать, это использовать разделе NTFS для файлов пользователя и ссылки на различные настройки и файлы пользователя, я хочу, чтобы тянуть в Linux. Который держит все мои вещи в одном месте.

Примечание: Если вы еще не знаете, вы также можете создавать символические ссылки в Windows с помощью команды MKLINK.

представьте себе это. У вас есть учетная запись Dropbox, которую вы используете в Linux и Windows. Чтобы избежать необходимости загружать / синхронизировать две копии одних и тех же файлов, легко использовать все через обе операционные системы, как символическую ссылку на папку Dropbox на NTFS раздела из папки / home.

Примечание: для автоматического монтирования диска NTFS (в дистрибутивах на основе Debian, не уверен насчет других) вам нужно добавить точку монтирования в /etc / fstab с umask=000 для привилегий записи.

вариант использования 3: Для поддержки по умолчанию и пользовательских структур папок одновременно

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

вы получили настройки сервера тестирования правильно в:

/opt/lampp

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

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

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

к счастью, есть гораздо более простой подход. Создайте сценарий bash для каждого веб-сайта с аргументами --testing и --production. Затем просто настройте аргументы, чтобы удалить соответствующие символические ссылки в папки htdocs и config для конкретной конфигурации. Сайт может находиться под управлением версиями, в отдельном разделе или даже в удаленной общей папке. Неважно, как долго, как точка ссылки справа место.

обновление:

это получил upvoted снова, поэтому я решил добавить еще один общий 2 больше вариантов использования.

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

позволяет сказать, что вы устанавливаете новое приложение, такое как Sublime Text, чтобы "/opt/Sublime Text", чтобы предоставить доступ на уровне пользователя, не требуя привилегий root.

чтобы сделать его легко доступным через командную строку один общий подход изменить переменную $PATH, чтобы включить каталог приложения Sublime. Этот подход может быть менее идеальным, поскольку $PATH имеет ограниченную длину, имеет тенденцию к загрязнению множеством ссылок на пути к общей библиотеке и более сложен для удаления позже.

поскольку /usr / bin (то есть один из главных каталогов приложений) уже включен в $PATH, почему бы не воспользоваться этим?

самый простой подход - создать символическую ссылку / usr/ bin/, указывающую на возвышенный текст выполнимый.

sudo ln -s "/opt/Sublime Text/sublime" /usr/bin/sublime

теперь запустить текстовый редактор Sublime из командной строки так же просто, как набрать sublime в терминале. Sudo требуется только при создании / удалении символической ссылки, так как /usr/bin по умолчанию имеет права на выполнение на уровне пользователя.

вариант использования 5: бесшовное резервное копирование и выборочная синхронизация с облаком

среди ИТ-толпы одним из наиболее распространенных советов является "резервное копирование файлов". Но резервные копии таковы '2000 and late'.

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

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

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

недавно у меня был мой основной настольный компьютер (т. е. iMac) опыт внутреннего отказа жесткого диска после 6 лет использования с потерей данных 0. Конечно, Я пришлось переустановить ОС, приложения, и повторно связать все, но он чувствовал себя хорошо, чтобы иметь свежий старт, и я был в состоянии сценарий большую часть процесса, чтобы сделать его проще сделать в будущем.

4
отвечен Evan Plaice 2022-12-30 03:58

ссылки обеспечивают уровень перенаправления для имени файла и его содержимого. Касается эта ситуация иллюстрируется Майкл Jakl, в статьи об использовании rsync, чтобы имитировать поведение функции Машины времени от Apple.

Hard-Links

3
отвечен David J. Liszewski 2022-12-30 06:15

реальные примеры использования жестких ссылок можно найти в /bin и другие каталоги bin. Выполните команду ls -l /bin | grep -v ' 1 ' | sort. Это даст вам список команд с несколькими ссылками. Некоторые команды будут действовать по-разному в зависимости от имени назови их. (Busybox-крайний случай.) Жесткие ссылки должны находиться на одном устройстве и не требуют дополнительного места на диске.

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

3
отвечен BillThor 2022-12-30 08:32

существует несколько применений символьных ссылок в Linux или * Nix системах в целом. Например, если требуется переместить физическое расположение файла, не нарушая существующие или общие "хорошо известные" ссылки, можно создать символическую ссылку в старом расположении. Это полезно при попытке обновить часто используемый инструмент с частной версией по какой-либо причине. Некоторые утилиты, такие как busybox, используют общий двоичный файл для удовлетворения нескольких потребностей. В некоторых дистрибутивах Linux как OpenWRT, с /бин/Баш /ОГРН/ЛС /ОГРН/МВ и т. д. все ссылки на /bin / busybox. Этот двоичный файл способен вести себя по-разному на основе argv[0] использовать.

2
отвечен Frank 2022-12-30 10:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх