Junior — Middle
Каква е разликата между твърда връзка и символична връзка в Linux и какви са техните особености при използване?
sobes.tech AI
Отговор от AI
Твърда връзка (hard link) и символична връзка (symlink) са два начина за създаване на връзки към файлове в Linux, но те се различават по принципа на работа и приложение:
-
Твърда връзка:
- Това е допълнително име за съществуващ файл.
- Посочва директно към inode на файла.
- Множество твърди връзки към един и същи файл са равноправни — файлът съществува, докато има поне една връзка.
- Не може да се създаде твърда връзка към директория (за да се избегнат цикли).
- Не може да се създаде твърда връзка към файл на друг дял или устройство.
-
Символична връзка:
- Това е отделен файл, съдържащ път към друг файл или директория.
- Може да сочи към директории и файлове на други дялове.
- Ако целевият файл бъде изтрит, символичната връзка става "битая" (неработеща).
Пример за използване:
# Създаване на твърда връзка
ln original.txt hardlink.txt
# Създаване на символична връзка
ln -s /път/до/original.txt symlink.txt
Твърдите връзки са полезни, когато трябва да имате няколко имена за един и същ файл в рамките на един дял, а символичните — когато трябва да се позовавате на файлове или директории на различни места или дялове.