Android

Hoe symbolische koppelingen in Linux te verwijderen (verwijderen)

How To Remove an Installed Package With All Dependencies In Linux

How To Remove an Installed Package With All Dependencies In Linux

Inhoudsopgave:

Anonim

Een symbolische link, ook bekend als een symlink, is een speciaal bestandstype dat naar een ander bestand of een andere map verwijst. Het is zoiets als een snelkoppeling in Windows. Een symlink kan verwijzen naar een bestand of een map op hetzelfde of een ander bestandssysteem of partitie.

In deze handleiding laten we u zien hoe u symbolische koppelingen in Linux / UNIX-systemen kunt verwijderen (verwijderen) met de opdrachten rm , unlink en find .

Voordat je begint

Om een ​​symlink te verwijderen, moet u schrijfrechten hebben op de map die de symlink bevat. Anders krijgt u de foutmelding "Bewerking niet toegestaan".

Wanneer u een symlink verwijdert, heeft dit geen invloed op het bestand waarnaar dit verwijst.

Gebruik de opdracht ls -l om te controleren of een bepaald bestand een symbolische koppeling is en om het bestand of de map te zoeken waarnaar de symbolische koppeling verwijst.

ls -l /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Het eerste teken "l" geeft aan dat het bestand een symlink is. Het symbool "->" geeft het bestand aan waarnaar de symlink verwijst.

Verwijder symbolische koppelingen met rm

De opdracht rm verwijdert bepaalde bestanden en mappen.

Om een ​​symlink te verwijderen, roept u de opdracht rm aan gevolgd door de symbolische linknaam als argument:

rm symlink_name

Bij succes wordt de opdracht met nul afgesloten en wordt er geen uitvoer weergegeven.

Met rm kunt u meerdere symbolische koppelingen tegelijkertijd verwijderen. Om dit te doen, geven we de namen van de symlinks door als argumenten, gescheiden door een spatie:

rm symlink1 symlink2

Gebruik de optie -i om een ​​melding te krijgen voordat u de symlink verwijdert:

rm -i symlink_name

Bevestig type y en druk op Enter .

rm: remove symbolic link 'symlink_name'?

Als de symbolische koppeling naar een map verwijst, voeg dan de schuine streep / aan het einde niet toe. Anders krijgt u een foutmelding:

rm symlink_to_dir/

rm: cannot remove 'symlink_to_dir/': Is a directory

Als de naam van het argument eindigt op / , gaat de opdracht rm ervan uit dat het bestand een map is. De fout treedt op omdat, wanneer gebruikt zonder de optie -d of -r , rm geen mappen kan verwijderen.

Voor de zekerheid, nooit -r optie bij het verwijderen van symbolische koppelingen met rm . Als u bijvoorbeeld typt:

rm -f symlink_to_dir/

De inhoud van de doelmap wordt verwijderd.

Verwijder symbolische koppelingen met unlink

Met de opdracht Unlink wordt een bepaald bestand verwijderd. In tegenstelling tot rm accepteert unlink slechts één argument.

Om een ​​symbolische koppeling te verwijderen, voert unlink opdracht unlink gevolgd door de symlinknaam uit als argument:

unlink symlink_name

Als de opdracht met succes wordt uitgevoerd, wordt er geen uitvoer weergegeven.

Voeg de schuine streep / achteraan niet toe aan het einde van de symlinknaam omdat unlink mappen niet kan verwijderen.

Zoek en verwijder verbroken symbolische koppelingen

Voer de volgende opdracht uit om alle verbroken symbolische koppelingen in een bepaalde map te vinden:

find /path/to/directory -xtype l

/path/to/directory/symlink1 /path/to/directory/subdir/symlink2

De opdracht geeft een lijst weer van alle verbroken koppelingen onder de map en de bijbehorende submappen.

find /path/to/directory -maxdepth 1 -xtype l

/path/to/directory/symlink1

Zodra u de verbroken symlinks vindt, kunt u ze handmatig verwijderen met rm of unlink of de optie -delete van de opdracht find gebruiken:

find /path/to/directory -xtype l -delete

Conclusie

Als u een symbolische koppeling wilt verwijderen, gebruikt u de opdracht rm of unlink gevolgd door de naam van de symlink als argument. Bij het verwijderen van een symbolische koppeling die naar een map verwijst, mag u geen slash toevoegen aan de symlinknaam.

rm terminal ontkoppelen