удалить символические ссылки

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

Симво­ли­че­ская ссыл­ка, так­же извест­ная как symlink, пред­став­ля­ет собой спе­ци­аль­ный тип фай­ла, кото­рый ука­зы­ва­ет на дру­гой файл или ката­лог. Это что-то вро­де ярлы­ка в Windows. Сим­воль­ная ссыл­ка может ука­зы­вать на файл или ката­лог в той же или дру­гой фай­ло­вой систе­ме или разделе.

В этой ста­тье мы пока­жем вам , как уда­лить сим­во­ли­че­ские ссыл­ки в систе­мах Linux/UNIX с помо­щью команд rm, unlink и find.

 

Что­бы уда­лить сим­во­ли­че­скую ссыл­ку, вам необ­хо­ди­мо иметь пра­ва на запись в ката­лог, содер­жа­щий сим­во­ли­че­скую ссыл­ку. В про­тив­ном слу­чае вы полу­чи­те ошиб­ку «Operation not permitted».

Когда вы уда­ля­е­те сим­во­ли­че­скую ссыл­ку, файл, на кото­рый она ука­зы­ва­ет, не затрагивается.

Исполь­зуй­те коман­ду ls -l, что­бы про­ве­рить, явля­ет­ся ли дан­ный файл сим­во­ли­че­ской ссыл­кой, и най­ти файл или ката­лог, на кото­рый ука­зы­ва­ет сим­во­ли­че­ская ссылка.

 

Пер­вый сим­вол «l» ука­зы­ва­ет, что файл явля­ет­ся сим­во­ли­че­ской ссыл­кой. Сим­вол «->» пока­зы­ва­ет файл, на кото­рый ука­зы­ва­ет сим­во­ли­че­ская ссылка.

 

Коман­да rm уда­ля­ет ука­зан­ные фай­лы и каталоги.

Что­бы уда­лить сим­во­ли­че­скую ссыл­ку, вызо­ви­те коман­ду rm с сим­во­ли­че­ским име­нем ссыл­ки в каче­стве аргумента:

 

В слу­чае успе­ха коман­да завер­ша­ет­ся с нуля и не выво­дит ника­ких данных.

С rm его помо­щью вы може­те уда­лить более одной сим­во­ли­че­ской ссыл­ки одно­вре­мен­но. Для это­го пере­дай­те име­на сим­во­ли­че­ских ссы­лок в каче­стве аргу­мен­тов через пробел:

 

Что­бы полу­чить запрос перед уда­ле­ни­ем сим­во­ли­че­ской ссыл­ки, исполь­зуй­те пара­метр -i:

 

Для под­твер­жде­ния нажми­те кла­ви­шу y и нажми­те Enter.

 

Если сим­во­ли­че­ская ссыл­ка ука­зы­ва­ет на ката­лог, не добав­ляй­те косую чер­ту / в кон­це. В про­тив­ном слу­чае вы полу­чи­те ошибку:

 

 

Если имя аргу­мен­та закан­чи­ва­ет­ся на /, коман­да rm пред­по­ла­га­ет, что файл явля­ет­ся ката­ло­гом. Ошиб­ка воз­ни­ка­ет из-за того, что при исполь­зо­ва­нии без опции -d или -r rm yt уда­лит каталоги.

Что­бы быть в без­опас­но­сти, нико­гда не исполь­зуй­те вари­ант -r при уда­ле­нии сим­во­ли­че­ских ссы­лок с коман­дой rm. Напри­мер, если вы введете:

 

Содер­жи­мое целе­во­го ката­ло­га будет удалено.

 

Коман­да unlink уда­ля­ет дан­ный файл. В отли­чие от rm, unlink при­ни­ма­ет толь­ко один аргумент.

Что­бы уда­лить сим­во­ли­че­скую ссыл­ку, запу­сти­те коман­ду unlink с име­нем сим­во­ли­че­ской ссыл­ки в каче­стве аргумента:

 

Если коман­да выпол­ня­ет­ся успеш­но, она не отоб­ра­зит вывод.

Не добав­ляй­те косую чер­ту / в кон­це име­ни сим­во­ли­че­ской ссыл­ки, пото­му что unlink не может уда­лить каталоги.

 

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

Что­бы най­ти все нера­бо­та­ю­щие сим­во­ли­че­ские ссыл­ки в дан­ном ката­ло­ге, выпол­ни­те сле­ду­ю­щую команду:

 

 

Коман­да выве­дет спи­сок всех нера­бо­та­ю­щих ссы­лок в ката­ло­ге и его подкаталогах.

Если вы хоти­те исклю­чить сим­во­ли­че­ские ссыл­ки, содер­жа­щи­е­ся в под­ка­та­ло­гах, пере­дай­те пара­метр -maxdepth 1 в find:

 

 

После того, как вы най­де­те нару­шен­ные сим­во­ли­че­ские ссыл­ки, вы може­те вруч­ную уда­лить их с помо­щью команд rm, unlink или исполь­зо­вать опцию -delete в коман­де find:

 

Что­бы уда­лить сим­во­ли­че­скую ссыл­ку, исполь­зуй­те коман­ду rm или unlink, за кото­рой сле­ду­ет имя сим­во­ли­че­ской ссыл­ки в каче­стве аргу­мен­та. При уда­ле­нии сим­во­ли­че­ской ссыл­ки, ука­зы­ва­ю­щей на ката­лог, не добав­ляй­те косую чер­ту к име­ни сим­во­ли­че­ской ссылки.