En länk i Linux är en speciell fil som hänvisar till en annan fil eller katalog. På så sätt kan en fil placeras på flera ställen samtidigt. När originalfilen raderas behålls länken. Detta kan resultera i krascher och i allmänhet täppa till systemet.
Till att börja med ska vi förklara metoden för att kontrollera att filen faktiskt är en länk. Detta görs bekvämt med hjälp av ls-verktyget
. Efter det, låt oss titta på tre metoder för borttagning, var och en med sina egna särdrag.
Med hjälp av ls
är det bekvämt att se information om filen. För att använda verktyget, ge det alternativet -l
och ange sökvägen. Som ett exempel kan vi ta filen ~/symlinks/link_1:
$ ls -l ~/symlinks/link_1
Du kan kontrollera en hel katalog med avseende på länkar:
$ ls -l ~/symlin
En fil som inte behövs markeras med en karakteristisk pil efter namnet.
Kommandot rm
kan användas för att radera alla filer i Linux filsystem, inklusive länkar. Det är alltså lämpligt för vår uppgift. Det är viktigt att nämna här att originalfilen eller katalogen inte påverkas av att länken raderas.
Kör kommandot i terminalen:
$ rm ~/symlinks/link_1
Om du vill få detaljerad information om proceduren lägger du till alternativet -v
i kommandot:
$ rm -v ~/symlinks/link_1
Dessutom kan du kontrollera om länken har försvunnit från katalogen. För att göra detta använder du det tidigare beskrivna kommandot ls
.
Nu vet du hur du tar bort en symbolisk länk i Linux.
Verktyget unlink
är utformat för att ta bort filer från Linux filsystem. Det behöver bara ange sökvägen till länken:
$ unlink ~/symlinks/link_1
Inom ramen för den aktuella uppgiften fungerar rm och unlink nästan identiskt. Låt oss nu gå vidare till den sista metoden.
Med hjälp av kommandot find
kan du söka efter och radera länkar i en viss katalog. Detta innebär att du inte behöver använda ls
ytterligare.
Till skillnad från de två föregående alternativen har det ganska avancerade funktioner, till exempel att ställa in sökkriterier. Men syntaxen är inte så enkel av den anledningen heller.
För att söka måste du ange en katalog och några parametrar:
$ find ~/symlinks/ -type l -print
Parametern -type l
behövs för att välja endast symboliska länkar, -print
för att skriva ut det fullständiga namnet. Och med hjälp av -maxdepth
kan du ange hur djupt sökningen ska gå i nästlade kataloger. Om du anger 1 kommer sökningen endast att utföras på själva katalogen, utan bilagor:
$ find ~/symlinks/ -maxdepth 1 -type l -print
När det finns många länkar i katalogen kan du ange ett sökmönster för kommandot find
. Som exempel kan vi ta en situation där vi bara vill hitta dolda länkar med ett senaste ändringsdatum som inte är mer än 30 dagar gammalt:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Två kriterier har lagts till:
-name
- sök efter namn
.-mtime
- efter ändringstid.Alla hittade länkar kan raderas enligt det angivna mönstret. För detta ändamål ersätts -print
med -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
I slutet av instruktionen tar vi upp sökning och radering av brutna länkar som inte leder någonstans, t.ex. efter att den ursprungliga filen eller katalogen har raderats. Parametern -xtype l är
lämplig för detta ändamål. -print
krävs inte för utdata:
$ find ~/broken_links/ -xtype l
Resultatet blir att alla brutna länkar visas i terminalen. Om du vill ta bort dem lägger du till -delete
i slutet av kommandot:
$ find ~/broken_links/ -xtype l -delete
Detta avslutar instruktionerna för att radera en länk i Linux.