Linux жүйесіндегі сілтеме – басқа файлға немесе каталогқа сілтеме жасайтын арнайы файл. Сондықтан бір файлды бірден бірнеше жерге орналастыруға болады. Түпнұсқа жойылған кезде оған сілтеме сақталады. Нәтижесінде сәтсіздіктер орын алуы мүмкін және жүйе тұтастай бітеліп қалады.
Алдымен, файлдың шын мәнінде сілтеме екенін қалай тексеруге болатынын түсіндірейік. Бұл ls
утилитасының көмегімен ыңғайлы түрде жасалады. Содан кейін біз жоюдың үш әдісін қарастырамыз, олардың әрқайсысының өзіндік сипаттамалары бар.
ls
арқылы файл туралы ақпаратты қарау ыңғайлы. Утилитаны пайдалану үшін -l
опциясын және жолды көрсетіңіз. Мысал ретінде ~/symlinks/link_1
файлын алайық:
$ ls -l ~/symlinks/link_1
Сілтемелер үшін бүкіл каталогты тексеруге болады:
$ ls -l ~/symlin
Қажет емес файл оның атынан кейін сипаттамалық көрсеткімен белгіленеді.
rm
пәрменін Linux файлдық жүйесіндегі кез келген файлды, соның ішінде сілтемелерді жою үшін пайдалануға болады. Сондықтан бұл біздің тапсырмамызға сәйкес келеді. Бұл жерде сілтемені жою бастапқы файлға немесе каталогқа әсер етпейтінін атап өткен жөн.
Терминалда пәрменді іске қосыңыз:
$ rm ~/symlinks/link_1
Сондай-ақ, процедура туралы толық ақпарат алу үшін пәрменге -v
опциясын қосыңыз:
$ rm -v ~/symlinks/link_1
Сонымен қатар, сілтеменің каталогтан жоғалып кеткенін тексеруге болады. Ол үшін бұрын сипатталған ls
пәрменін пайдаланыңыз.
Енді сіз Linux символдық сілтемесін қалай жою керектігін білесіз.
unlink
утилитасы Linux файлдық жүйесінен файлдарды жоюға арналған. Сілтемеге жолды көрсету жеткілікті:
$ unlink ~/symlinks/link_1
Осы тапсырманың мақсаттары үшін rm және ажырату бірдей дерлік жұмыс істейді. Енді соңғы әдіске көшейік.
find
пәрменін берілген каталогтағы сілтемелерді іздеу және жою үшін пайдалануға болады, яғни ls
қосымша пайдалану қажет емес.
Алдыңғы екі опциядан айырмашылығы, оның іздеу критерийлерін орнату сияқты жетілдірілген мүмкіндіктері бар. Бірақ синтаксис осы себепті қарапайым емес.
Іздеу үшін каталог пен бірнеше параметрлерді көрсету керек:
$ find ~/symlinks/ -type l -print
-type l
параметрі тек символдық сілтемелерді таңдау үшін қажет, толық атын көрсету үшін -print
. Ал -maxdepth
көмегімен кірістірілген каталогтарда іздеу тереңдігін орнатуға болады. 1 мәнін көрсетсеңіз, іздеу кірістірместен тек каталогтың өзінде болады:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Каталогта көптеген сілтемелер болғаннан кейін find
пәрмені үшін іздеу үлгісін орнатуға болады. Мысал ретінде, соңғы өзгерту күні 30 күннен аспайтын жасырын сілтемелерді ғана тапқыңыз келетін жағдайды алайық:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Екі критерий қосылды:
-name
– аты бойынша іздеу.-mtime
– өзгерту уақыты бойынша. Барлық табылған сілтемелерді көрсетілген үлгі бойынша жоюға болады. Ол үшін -print
орнына -delete
қолданылады:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Нұсқаулардың соңында біз ешқайда әкелмейтін бұзылған сілтемелерді табуды және жоюды қарастырамыз, мысалы, бастапқы файлды немесе каталогты жойғаннан кейін. Бұл мақсат үшін -xtype l
параметрі қолайлы. Бұл жағдайда шығару үшін -print
қажет емес:
$ find ~/broken_links/ -xtype l
Нәтижесінде барлық бұзылған сілтемелер терминалда көрсетіледі. Оларды жою үшін пәрменнің соңына -delete
қосыңыз:
$ find ~/broken_links/ -xtype l -delete
Бұл Linux жүйесінде сілтемені жою нұсқауларын аяқтайды.