Sobes.tech
Junior — Middle

Каква е разликата между твърда връзка и символична връзка в Linux и какви са техните особености при използване?

sobes.tech AI

Отговор от AI

Твърда връзка (hard link) и символична връзка (symlink) са два начина за създаване на връзки към файлове в Linux, но те се различават по принципа на работа и приложение:

  • Твърда връзка:

    • Това е допълнително име за съществуващ файл.
    • Посочва директно към inode на файла.
    • Множество твърди връзки към един и същи файл са равноправни — файлът съществува, докато има поне една връзка.
    • Не може да се създаде твърда връзка към директория (за да се избегнат цикли).
    • Не може да се създаде твърда връзка към файл на друг дял или устройство.
  • Символична връзка:

    • Това е отделен файл, съдържащ път към друг файл или директория.
    • Може да сочи към директории и файлове на други дялове.
    • Ако целевият файл бъде изтрит, символичната връзка става "битая" (неработеща).

Пример за използване:

# Създаване на твърда връзка
ln original.txt hardlink.txt

# Създаване на символична връзка
ln -s /път/до/original.txt symlink.txt

Твърдите връзки са полезни, когато трябва да имате няколко имена за един и същ файл в рамките на един дял, а символичните — когато трябва да се позовавате на файлове или директории на различни места или дялове.