У Linux є два типи посилань: жорсткі (hard links) і символічні (symbolic links, або "симлінки").
Символічне посилання
Це ярлик, який вказує на інший файл або директорію. Воно працює майже як ярлик у Windows.
Коли користувач викликає програму або відкриває файл через симлінк, система автоматично перенаправляє його на справжнє місце.
Симлінк не містить самих даних, лише шлях до них.
Приклад:
ln -s /opt/.android ~/.android
ln
— команда створення посилання
-s
— ключ для символічного посилання
/opt/.android
— реальне місце, де лежать дані
~/.android
— місце, де хочемо бачити посилання (тобто замінити оригінальну папку)
Що бачить система:
ls -l ~/
дасть щось типу:
lrwxrwxrwx 1 user user 14 May 12 16:00 .android -> /opt/.android
l
на початку — це link, і видно, куди він вказує.
Жорсткі посилання
У Linux кожен файл — це дані на диску + імена, які на них вказують. Жорстке посилання — це просто ще одне ім’я для тих самих даних.
Тобто кілька різних "файлів" можуть вказувати на один і той самий вміст, і система не бачить між ними різниці.
Приклад:
echo "Hello" > file1.txt
ln file1.txt file2.txt
Тепер file1.txt і file2.txt — одне й те саме: вони вказують на ті самі байти на диску.
Якщо змінити один, то зміниться й інший:
echo "World" > file2.txt
cat file1.txt
Результат: World
Якщо видалити один із них, товміст не зникне, бо інший ще існує.
Дізнатися, скільки посилань має файл:
ls -l
Поле між правами та користувачем — це кількість жорстких посилань:
-rw-r--r-- 2 user user 6 трав 12 file1.txt
Коментарі
Дописати коментар