Как да създадете твърди връзки Linux?

How Create Hard Links Linux



Свързването е интересна функция в Linux. В UNIX-подобни операционни системи всичко е файл. Файлът е по същество връзка към inode, специален тип структура от данни, която съхранява всичко за определен файл, с изключение на първоначалното му име и действителното съдържание. Това е функцията, която свързва лостовете. Създаването на връзка означава създаване на друг файл, който сочи към същия основен inode като друг файл. В много ситуации това е невероятно полезен метод.

Вижте как да създадете твърди връзки в Linux.







Твърди връзки в Linux

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



Ако един файл от твърдата връзка бъде изтрит, той премахва връзката от основния inode.



Командата ls може да отпечата inode на целевия файл/директория.





$ls -при <file_or_dir>

Създаване на твърди връзки

Създаването на твърда връзка е съвсем просто. За създаване на връзки ln е специалният инструмент, наличен в почти всички дистрибуции на Linux.



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

$Ин -v <източник> <връзка>


Проверете резултата.

$ls -при <цел>


Що се отнася до твърдото свързване на директория, това не е позволено. Хипотетично все още е възможно да се създаде, но повечето дистрибуции на Linux деактивират тази функция, дори ако изпълните действието с root права. За свързване на директория използвайте меки връзки.

Меки връзки

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

Точно като създаването на твърди връзки, ще използваме инструмента ln. За да декларирате, че създавате мека връзка, добавете флага -s.

$Ин -срещу <източник> <дестинация>


Проверете резултата.

$ls -при <цел>

Ако вече съществува връзка, можете да я актуализирате, като използвате флага -f, който принуждава ln да актуализира връзката без потвърждение. Като алтернатива можете да използвате флага -i за създаване на интерактивна връзка.

$Ин -sf <източник> <дестинация>


Не забравяйте да проверите резултата.

$ls -при <цел>

Намиране на връзки

Ако приемем, че има няколко връзки към един и същ файл, проследяването им може да стане трудно. В такава ситуация използвайте този метод, за да разберете всички връзки.

За това се нуждаем от стойността на inode на оригиналния файл. Използвайте следната команда, за да разберете номера на inode.

$ls -при <target_file>


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

$намирам.-инум <inode_value>

Изтриване на връзки

Ако искате да деактивирате твърда връзка, начинът да направите това е чрез изтриване на свързания файл.

$rm <връзка>

Последни мисли

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

Интересувате ли се от по-задълбочена информация за командата ln? Вижте как да използвате командата ln.

Честит компютър!