Символічні посилання та прив’язування в Linux: глибокий погляд
Операційна система Linux має ряд щоденних інструментів, про важливість яких багато користувачів навіть не замислюються. Освоївши ці прості, на перший погляд, методи, можна значно підвищити ефективність роботи з Linux. Яскравим прикладом є символічні посилання та прив’язування. У цій статті ми детально розглянемо, що таке символічне посилання, як його створити і де його можна використовувати. Також ми розглянемо, що таке прив’язування, чому воно є корисним, і як покращити його за допомогою утиліти bindfs.
СПОЙЛЕР: Пропонуємо переглянути відеоурок в кінці цієї статті.
Що таке символічне посилання?
Символічне посилання (або “симлінк”) – це, по суті, покажчик на інший файл або папку в межах файлової системи. Наприклад, розробники програмного забезпечення, замість того, щоб дублювати бібліотеки в системі, створюють символічні посилання на відповідні каталоги та файли. Це дозволяє програмі отримати доступ до всіх необхідних ресурсів без створення надлишкових копій.
Символічні посилання також зручні для посилання на файли між різними розділами та дисками. Уявімо, що ваша музична бібліотека обсягом 500 ГБ зберігається на жорсткому диску B. Через великий розмір ви не можете просто перемістити її на системний диск A.
Створення символічних посилань на кожен файл з диску B на диск A дозволить музичному плеєру безперешкодно отримати доступ до всієї бібліотеки.
Як використовувати символічні посилання
Символічні посилання можуть посилатися як на окремі файли, так і на цілі каталоги. Розглянемо, як їх створювати:
Створення символічного посилання на файл
Відкрийте термінал та перейдіть до каталогу, де знаходиться файл, на який ви хочете створити посилання:
cd ~/шлях/до/файлу
Створіть символічне посилання, вказавши шлях, куди воно має вести:
ln -s оригінальний-файл /шлях/куди/йде/посилання
Створення символічного посилання на папку
ln -s /шлях/до/оригінальної/папки /шлях/куди/веде/посилання
Видалення символічного посилання
cd /шлях/де/знаходиться/симлінк
rm ім'я-симлінка
unlink ім'я-симлінка
Що таке прив’язування (Bind-mount)?
Прив’язування (bind-mount) – це спосіб відобразити вміст однієї папки в іншому місці файлової системи. Хоча це може здаватися схожим на символічне посилання на папку, насправді це інший механізм. Прив’язування є корисним інструментом, який, наприклад, системні адміністратори використовують для швидкого збільшення дискового простору для папки “на льоту”, особливо, коли основна файлова система має статус “лише для читання”. Також, за допомогою прив’язування можна швидко підключити мережевий ресурс до локального каталогу, не створюючи відповідний запис у файлі fstab.
Використання Bind-mounts через вбудовану команду ядра Linux
Ядро Linux має вбудовану команду для прив’язування, яка дозволяє легко відображати вміст папок. Розглянемо, як це працює.
Визначте каталог, вміст якого ви хочете відобразити, а потім місце, куди ви хочете його “прив’язати”.
У нашому прикладі, ми прив’яжемо каталог з музикою з одного диска на інший:
sudo mount --bind /mnt/DataDrive/Music /home/user/Music
Для розмонтування прив’язування використовуйте:
umount /home/user/Music
BindFS
Для більш гнучкого управління прив’язуванням варто скористатися утилітою bindfs. Вона не тільки дозволяє прив’язувати каталоги, а й надає додаткові можливості, такі як налаштування дозволів. Встановити bindfs можна наступним чином:
Ubuntu
sudo apt install bindfs
Debian
sudo apt-get install bindfs
Arch Linux
На жаль, у офіційних репозиторіях Arch Linux утиліти bindfs немає. Користувачам потрібно буде встановити пакет AUR.
Fedora
sudo dnf install bindfs
OpenSUSE
sudo zypper install bindfs
Інші Linux дистрибутиви
Для встановлення bindfs на інших дистрибутивах Linux, відвідайте офіційний сайт bindfs. Або ж, скористайтеся менеджером пакетів вашого дистрибутива, виконавши пошук “bindfs”.
Використання Bindfs для прив’язування
Використання bindfs має ряд переваг. Вбудована команда ядра Linux працює миттєво, проте вона є доволі простою та не пропонує додаткових функцій, таких як обмеження доступу. Розглянемо, як використовувати bindfs:
Створення прив’язування “лише для читання”
bindfs --perms=a-w /шлях/до/оригінального/каталогу/ /шлях/куди/прив'язати/
Створення прив’язування для читання та запису
bindfs /шлях/до/оригінального/каталогу /шлях/куди/прив'язати
Розмонтування прив’язування bindfs
sudo umount /шлях/куди/прив'язано/
Висновки
Такі звичайні операції, як створення символічних посилань та прив’язування, часто залишаються поза увагою користувачів Linux через свою “нецікавість”. Проте, саме ці інструменти можуть значно спростити роботу з файлами, забезпечити швидкий доступ до них, а також легко розширити дисковий простір. Зрозумівши їхні можливості, ви зможете значно підвищити свою ефективність у Linux.