Android

Hur man tar bort (tar bort) symboliska länkar i Linux

Microsoft шрифты в Linux (и их свободные аналоги)

Microsoft шрифты в Linux (и их свободные аналоги)

Innehållsförteckning:

Anonim

En symbolisk länk, även känd som en symlink, är en speciell filtyp som pekar på en annan fil eller katalog. Det är något som en genväg i Windows. En symlink kan peka på en fil eller en katalog på samma eller ett annat filsystem eller partition.

I den här guiden visar vi dig hur du tar bort (raderar) symboliska länkar i Linux / UNIX-system med kommandona rm , unlink och find .

Innan du börjar

För att ta bort en symlink måste du ha skrivbehörigheter i katalogen som innehåller symlänken. Annars får du ”Operation not allow” -fel.

När du tar bort en symlink påverkas inte filen den pekar på.

Använd kommandot ls -l att kontrollera om en given fil är en symbolisk länk och för att hitta filen eller katalogen som den symboliska länken pekar på.

ls -l /usr/bin/python

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

Det första tecknet "l" indikerar att filen är en symlink. Symbolen "->" visar filen symlinken pekar på.

Ta bort symboliska länkar med rm

Kommandot rm tar bort givna filer och kataloger.

För att radera en symlink, anropa rm kommandot följt av det symboliska länknamnet som ett argument:

rm symlink_name

Vid framgång avslutas kommandot med noll och visar ingen utgång.

Med rm du radera mer än en symbolisk länk samtidigt. För att göra det passerar namnen på symlänkar som argument, separerade med mellanslag:

rm symlink1 symlink2

-i alternativet -i att få en uppmaning innan du tar bort symlänken:

rm -i symlink_name

Bekräfta typ y och tryck på Enter .

rm: remove symbolic link 'symlink_name'?

Om den symboliska länken pekar på en katalog ska du inte lägga till / släten i slutet. Annars får du ett fel:

rm symlink_to_dir/

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

Om namnet på argumentet slutar med / antar rm kommandot att filen är en katalog. Felet händer eftersom rm kan ta bort kataloger när det används utan alternativet -d eller -r .

För att vara på den säkra sidan, aldrig -r alternativet när du tar bort symboliska länkar med rm . Om du till exempel skriver:

rm -f symlink_to_dir/

Innehållet i målkatalogen kommer att raderas.

Ta bort symboliska länkar med unlink

unlink kommandot raderar en given fil. Till skillnad från rm accepterar unlink bara ett enda argument.

För att radera en symbolisk länk, kör unlink kommandot följt av symlinknamnet som ett argument:

unlink symlink_name

Om kommandot körs framgångsrikt visar det ingen utgång.

Lägg inte till / släten i slutet av namnet på unlink eftersom unlink kan ta bort kataloger.

Hitta och ta bort trasiga symbollänkar

Kör följande kommando för att hitta alla trasiga symbollänkar under en given katalog:

find /path/to/directory -xtype l

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

Kommandot visar alla trasiga länkar under katalogen och dess underkataloger.

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

/path/to/directory/symlink1

När du hittat de trasiga symlänkarna kan du antingen ta bort dem manuellt med rm eller ta bort unlink eller använda alternativet -delete i -delete :

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

Slutsats

För att ta bort en symbolisk länk, använd antingen kommandot rm eller unlink följt av namnet på symlänken som ett argument. När du tar bort en symbolisk länk som pekar på en katalog ska du inte lägga till en slingor till symlinknamnet.

rm unlink find terminal