симлинк хардлинк Symbolic link hard link

Thank you for reading this post, don't forget to subscribe!

Симлинк -

(или сим­воль­ная ссыл­ка) файл спе­ци­аль­но­го назна­че­ния, кото­рый ведет на дру­гой файл или папку.

Под­дер­жи­ва­ет­ся раз­лич­ны­ми опе­ра­ци­он­ны­ми систе­ма­ми — Windows(начиная с Vista, коман­да mklink), Linux (ln), Android (ln) и дру­ги­ми. Одна­ко важ­но, что­бы созда­ние и исполь­зо­ва­ние сим­лин­ков так­же под­дер­жи­ва­ла фай­ло­вая система.

Для уда­ле­ния сим­лин­ков исполь­зу­ют­ся стан­дарт­ные сред­ства опе­ра­ци­он­ных систем — они уда­ля­ют­ся как и обыч­ные папки/файлы.

В отли­чие от жест­кой ссыл­ки, если уда­лить ори­ги­наль­ный файл, сим­воль­ная ссыл­ка пере­ста­нет работать.

 

Создание

Общий син­так­сис

ln -s <на какой суще­ству­ю­щий объ­ект будет вести> <созда­ва­е­мый симлинк>

В систе­мах на базе Linux (напри­мер, Ubuntu или CentOS) и FreeBSD сим­линк для ката­ло­га и фай­ла созда­ют­ся одинаково:

ln -s /usr/share/nginx/html/index.php /home/andr/

ln -s /usr/share/nginx/html /home/andr/

* в пер­вом при­ме­ре созда­на сим­воль­ная ссыл­ка в домаш­ней дирек­то­рии поль­зо­ва­те­ля andr на файл index.php; во вто­ром — на ката­лог /usr/share/nginx/html.

Удаление

Так­же исполь­зу­ет­ся одна команда:

rm /home/andr/index.php

 

Жесткая ссылка —

файл, ссы­ла­ю­щий­ся на дру­гой файл или пап­ку. На пер­вый взгляд, напо­ми­на­ет сим­воль­ную ссыл­ку, одна­ко это не совсем так. Сим­линк зави­сит от фай­ла, на кото­рый он ссы­ла­ет­ся, и если уда­лить послед­ний, сим­линк пере­ста­нет рабо­тать. Жест­кая ссыл­ка (хард­линк) явля­ет­ся копи­ей иден­ти­фи­ка­то­ра фай­ла (i-node) и если уда­лить ори­ги­наль­ный файл, он оста­нет­ся в систе­ме, пока не уда­лить все ссылки.

Неко­то­рые нюансы:

  1. Хард­линк может раз­ме­щать­ся толь­ко на том же логи­че­ском раз­де­ле, что и ори­ги­наль­ный файл. Это свя­за­но с неза­ви­си­мой иден­ти­фи­ка­ци­ей фай­лов на раз­ных разделах.
  2. Созда­ние жест­ких ссы­лок не под­дер­жи­ва­ет­ся для папок — толь­ко для файлов.
  3. Фай­ло­вая систе­ма долж­на под­дер­жи­вать рабо­ту с хардлинками.

При­мер созда­ния для Linux (ext3 или ext4):

ln /var/www/index.php /home/user/index.php