Link w systemie Linux to specjalny plik, który odnosi się do innego pliku lub katalogu. W ten sposób jeden plik może być umieszczony w kilku miejscach jednocześnie. Gdy oryginalny plik zostanie usunięty, link zostaje zachowany. Może to powodować awarie i ogólnie zapycha system.
Na początek wyjaśnijmy metodę sprawdzania, czy plik jest rzeczywiście linkiem. Można to wygodnie zrobić za pomocą narzędzia ls
. Następnie przyjrzyjmy się trzem metodom usuwania, z których każda ma swoje osobliwości.
Z pomocą ls
wygodnie jest zobaczyć informacje o pliku. Aby użyć tego narzędzia, należy nadać mu opcję -l
i określić ścieżkę. Jako przykład weźmy plik ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
Możesz sprawdzić cały katalog pod kątem linków:
$ ls -l ~/symlin
Plik, który nie jest potrzebny, jest oznaczony charakterystyczną strzałką po jego nazwie.
Polecenie rm
może być użyte do usunięcia dowolnego pliku w systemie plików Linux, w tym linków. Oznacza to, że nadaje się ono do naszego zadania. Ważne jest, aby wspomnieć tutaj, że oryginalny plik lub katalog nie zostanie naruszony w wyniku usunięcia linku.
W terminalu uruchom polecenie:
$ rm ~/symlinks/link_1
Ponadto, aby uzyskać szczegółowe informacje o procedurze, dodaj opcję -v
do polecenia:
$ rm -v ~/symlinks/link_1
Dodatkowo możesz sprawdzić, czy link zniknął z katalogu. Aby to zrobić, użyj wcześniej opisanego polecenia ls
.
Teraz już wiesz, jak usunąć dowiązanie symboliczne w systemie Linux.
Narzędzie unlink
jest przeznaczone do usuwania plików z systemu plików Linux. Wymaga jedynie określenia ścieżki do dowiązania:
$ unlink ~/symlinks/link_1
W zakresie wykonywanego zadania, rm i unlink działają niemal identycznie. Przejdźmy teraz do ostatniej metody.
Za pomocą polecenia find
można wyszukiwać i usuwać linki w danym katalogu. Oznacza to, że nie trzeba dodatkowo używać ls
.
W przeciwieństwie do poprzednich dwóch opcji, ma dość zaawansowane funkcje, na przykład ustawianie kryteriów wyszukiwania. Ale składnia nie jest tak prosta z tego powodu.
Aby wyszukać, musisz określić katalog i kilka parametrów:
$ find ~/symlinks/ -type l -print
Parametr -type l
jest potrzebny do wybrania tylko dowiązań symbolicznych, -print
do wypisania pełnej nazwy. Za pomocą parametru -maxdepth
można określić głębokość wyszukiwania według zagnieżdżonych katalogów. Jeśli określisz 1, wyszukiwanie będzie wykonywane tylko w samym katalogu, bez załączników:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Gdy w katalogu znajduje się wiele linków, można określić wzorzec wyszukiwania dla polecenia find
. Jako przykład weźmy sytuację, w której chcemy znaleźć tylko ukryte linki z datą ostatniej modyfikacji nie więcej niż 30 dni temu:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Dodano dwa kryteria:
-name
- wyszukiwanie według nazwy
.-mtime
- według czasu modyfikacji.Wszystkie znalezione linki mogą zostać usunięte zgodnie z określonym wzorcem. W tym celu -print
jest zastąpione przez -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Na koniec instrukcji zajmijmy się wyszukiwaniem i usuwaniem niedziałających linków, które prowadzą donikąd, na przykład po usunięciu oryginalnego pliku lub katalogu. Parametr -xtype l
jest odpowiedni do tego celu. -print
nie jest wymagany dla wyjścia:
$ find ~/broken_links/ -xtype l
W rezultacie wszystkie niedziałające linki zostaną wyświetlone w terminalu. Aby je usunąć, należy dodać -delete
na końcu polecenia:
$ find ~/broken_links/ -xtype l -delete
To kończy instrukcje dotyczące usuwania linków w systemie Linux.