Een link in Linux is een speciaal bestand dat verwijst naar een ander bestand of een andere map. Op deze manier kan één bestand op meerdere plaatsen tegelijk staan. Wanneer het originele bestand wordt verwijderd, blijft de link behouden. Dit kan leiden tot crashes en verstopt het systeem in het algemeen.
Laten we om te beginnen de methode uitleggen om te controleren of het bestand daadwerkelijk een link is. Dit wordt eenvoudig gedaan met het hulpprogramma ls
. Laten we daarna drie verwijderingsmethoden bekijken, elk met zijn eigen bijzonderheden.
Met behulp van ls
is het handig om informatie over het bestand te bekijken. Om het hulpprogramma te gebruiken, geef je het de optie -l
en geef je het pad op. Laten we als voorbeeld het bestand ~/symlinks/link_1
nemen:
$ ls -l ~/symlinks/link_1
Je kunt een hele catalogus controleren op links:
$ ls -l ~/symlin
Een bestand dat niet nodig is, wordt gemarkeerd met een karakteristieke pijl achter zijn naam.
De opdracht rm
kan worden gebruikt om elk bestand in het Linux-bestandssysteem te verwijderen, inclusief links. Het is dus geschikt voor onze taak. Het is belangrijk om hier te vermelden dat het verwijderen van de link geen invloed heeft op het originele bestand of de originele map.
Voer de opdracht uit in de terminal:
$ rm ~/symlinks/link_1
Voeg ook de optie -v
toe aan de opdracht om gedetailleerde informatie over de procedure te krijgen:
$ rm -v ~/symlinks/link_1
Daarnaast kun je controleren of de link uit de map is verdwenen. Gebruik hiervoor het eerder beschreven commando ls
.
Nu weet je hoe je een Linux symbolische link verwijdert.
Het hulpprogramma unlink
is ontworpen om bestanden van het Linux-bestandssysteem te verwijderen. Je hoeft alleen het pad naar de link op te geven:
$ unlink ~/symlinks/link_1
Binnen het bestek van de taak werken rm en unlink bijna identiek. Laten we nu verder gaan met de laatste methode.
Met behulp van het commando find
kun je links in een bepaalde map zoeken en verwijderen. Dit betekent dat je ls
niet extra hoeft te gebruiken.
In tegenstelling tot de vorige twee opties, heeft het vrij geavanceerde functies, bijvoorbeeld het instellen van zoekcriteria. Maar de syntaxis is daarom ook niet zo eenvoudig.
Om te zoeken moet je een map en een paar parameters opgeven:
$ find ~/symlinks/ -type l -print
De -type l
parameter is nodig om alleen symbolische links te selecteren, -print
om de volledige naam uit te voeren. En met behulp van -maxdepth
kun je de zoekdiepte voor geneste mappen opgeven. Als je 1 opgeeft, wordt er alleen in de map zelf gezocht, zonder bijlagen:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Als er veel koppelingen in de map staan, kun je een zoekpatroon opgeven voor de opdracht find
. Als voorbeeld nemen we een situatie waarin we alleen verborgen koppelingen willen vinden met een laatst gewijzigde datum van niet meer dan 30 dagen geleden:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Twee criteria zijn toegevoegd:
-naam
- zoeken op naam
.-mtime
- op wijzigingstijd.Alle gevonden links kunnen worden verwijderd volgens het opgegeven patroon. Hiervoor is -print
vervangen door -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Aan het einde van de instructie laten we het zoeken en verwijderen van gebroken links behandelen die nergens toe leiden, bijvoorbeeld na het verwijderen van het originele bestand of map. De parameter -xtype l
is geschikt voor dit doel. -print
is niet nodig voor de uitvoer:
$ find ~/broken_links/ -xtype l
Het resultaat is dat alle gebroken links in de terminal worden weergegeven. Om ze te verwijderen, voeg je -delete
toe aan het einde van het commando:
$ find ~/broken_links/ -xtype l -delete
Hiermee zijn de instructies voor het verwijderen van een link in Linux voltooid.