Урок за Symlink в Linux - Как да създадете и премахнете символна връзка

Символната връзка (наричана още символна връзка) е вид файл в Linux, който сочи към друг файл или папка на вашия компютър. Символните връзки са подобни на преките пътища в Windows.

Някои хора наричат ​​символните връзки „меки връзки“ - вид връзка в Linux / UNIX системите - за разлика от „твърдите връзки“.

Разлика между мека връзка и твърда връзка

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

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

Нека разгледаме стъпките, свързани със създаването и премахването на символна връзка. Също така ще видим какво са счупени връзки и как да ги изтрием.

Как да създадете Symlink

Синтаксисът за създаване на символна връзка е:

ln -s   

lnе командата за връзка. На -sуточнява флаг, че връзката трябва да е мека. -sможе да се въведе и като -symbolic.

По подразбиране lnкомандата създава твърди връзки. Следващият аргумент е path to the file (or folder), че искате да свържете. (Тоест файлът или папката, за които искате да създадете пряк път.)

И последният аргумент е path to linkсамият той (пряк път).

Как да създадете Symlink за файл - Примерна команда

ln -s /home/james/transactions.txt trans.txt 

След като стартирате тази команда ще можете да получите достъп до /home/james/transactions.txtс trans.txt. Всяка промяна в trans.txtсъщо ще бъде отразена в оригиналния файл.

Имайте предвид, че тази команда по-горе ще създаде файла с връзки trans.txtв текущата ви директория. Можете също така да създадете свързан файл в папка, свързващ това:

ln -s /home/james/transactions.txt my-stuffs/trans.txt 

Трябва да има директория, която вече се нарича "my-stuffs" в текущата ви директория - ако не, командата ще изведе грешка.

Как да създадете Symlink за папка - Примерна команда

Подобно на горното, бихме използвали:

ln -s /home/james james 

Това ще създаде папка със символни връзки, наречена "james", която ще съдържа съдържанието на /home/james. Всички промени в тази свързана папка ще засегнат и оригиналната папка.

Как да премахнете символна връзка

Преди да искате да премахнете символна връзка, може да поискате да потвърдите, че файлът или папката е символна връзка, така че да не фалшифицирате файловете си.

Един от начините да направите това е:

ls -l  

Изпълнението на тази команда на вашия терминал ще покаже свойствата на файла. В резултат, ако първият знак е малка буква L ('l'), това означава, че файлът / папката е символна връзка.

Също така ще видите стрелка (->) в края, показваща файла / папката, към която сочи връзката.

Има два метода за премахване на символна връзка:

Как да използвам Unlink за премахване на Symlink

Синтаксисът е:

unlink  

Това изтрива символната връзка, ако процесът е успешен.

Дори ако символната връзка е под формата на папка, не добавяйте '/', защото Linux ще приеме, че е директория и unlinkне може да изтрива директории.

Как да използвам rm за премахване на Symlink

Както видяхме, символната връзка е просто друг файл или папка, сочеща към оригинален файл или папка. За да премахнете тази връзка, можете да премахнете свързания файл.

Следователно синтаксисът е:

rm  

Например:

rm trans.txt rm james 

Имайте предвид, че опитът да се направи rm james/би довел до грешка, тъй като Linux ще приеме, че "james /" е директория, която ще изисква други опции като rи f. Но не това искаме. Символната връзка може да е папка, но ние се занимаваме само с името.

Основното предимство на rmover unlinkе, че можете да премахвате няколко символни връзки наведнъж, както можете с файлове.

Как да намерите и изтриете счупени връзки

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

Например, ако „транзакции.txt“ се премести от /home/jamesкъм /home/james/personal, връзката „транс.т.к.ст“ се прекъсва. Всеки опит за достъп до файла ще доведе до грешка „Няма такъв файл или директория“. Това е така, защото връзката няма собствено съдържание.

Когато откриете счупени връзки, можете лесно да изтриете файла. Лесен начин за намиране на счупени символни връзки е:

find /home/james -xtype l 

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

Преминаването на -deleteопцията ще ги изтрие така:

find /home/james -xtype l -delete 

Обобщавайки

Символната връзка е интересна характеристика на Linux и UNIX системите.

Можете да създадете лесно достъпни символни връзки, които да се отнасят до файл или папка, които иначе не биха били удобни за достъп. С малко практика ще разберете как те работят на интуитивно ниво и те ще ви направят много по-ефективни в управлението на файлови системи.