Skrypt bash, aby uzyskać cel symboliczny

Skrypt bash, aby uzyskać cel symboliczny
Wszyscy znamy symboliczne linki w Linux. Powszechnie znany jako symboliczny link to konkretny plik, który wskazuje na inny plik lub katalog w dowolnym systemie plików.

W tym krótkim samouczku przejdziemy do podstaw symbolicznych linków w Linux i utworzymy prosty skrypt bash, aby uzyskać cel symbolicznego linku.

Rodzaje symbolicznych linków

Istnieją głównie dwa rodzaje symbolicznych linków, a mianowicie:

Twarde linki:

Twarde linki to bezpośrednie wskaźniki do pliku lub katalogu w systemie plików. Twarde linki można tworzyć tylko w tym samym systemie plików, co plik docelowy.

Miękkie linki:

Z drugiej strony, miękkie linki są pośrednim skrótami do pliku lub katalogu i mogą istnieć w dowolnym miejscu w systemie plików. Miękkie linki mogą wskazywać na pliki w innym systemie plików.

Jak tworzyć symboliczne linki

Aby utworzyć link symboliczny w Linux, używamy polecenia LN. Wykonanie polecenia bez opcji tworzy twardy link do określonego pliku docelowego.

Ogólna składnia dla polecenia LN to:

LN [opcje]

Jak wspomniano, powyższe polecenie utworzy twardy link do pliku docelowego. Aby utworzyć miękki link symboliczny, użyj opcji -s jako:

ln -s [opcja]

Przykład 1

Weźmy plik autorytet.Zaloguj się /var /log. Możemy utworzyć link do pliku w naszym katalogu domowym za pomocą polecenia jako:

ln -s/var/log/auth.Log Auth.dziennik

Powyższe polecenie utworzy link wskazujący na plik główny. Możemy to zweryfikować za pomocą polecenia LS:

LS -LA

Przykład nr 2

Możesz także wykonać podobną operację w katalogu. Aby utworzyć link do /var /log, używamy polecenia:

Ln -s /var /log log

Podobnie tworzony jest miękki łącze wskazujący na katalog Target /Var /Log:

LS -LA

Jak usunąć symboliczne linki

Aby usunąć symboliczny link, używamy polecenia odłączającego się, a następnie ścieżki do symbolicznego łącza do usunięcia.

Na przykład:

unlink ~/log

NOTATKA: Jeśli usuniesz plik docelowy lub katalog, usuń link symboliczny, ponieważ opuszczenie go tworzy zepsuty link.

Jak uzyskać symboliczny plik docelowy linków lub katalog

Każdy symboliczny link wskazuje na plik docelowy lub katalog (chyba że jest zepsuty). Aby pobrać docelowe plik/katalog symboli.

Na przykład, aby uzyskać cel autoryzacji.Plik dziennika, który stworzyliśmy we wcześniejszej sekcji, możemy zrobić:

ReadLink Auth.dziennik
/val/log/auth.dziennik

Prosty skrypt bash, aby uzyskać symlinki

Korzystając z powyższych pojęć, możemy zgromadzić prosty skrypt bash, który akceptuje ścieżkę i wymienia wszystkie symboliczne i docelowe pliki lub katalog.

Prosty skrypt, taki jak podany poniżej.

#!/bin/bash
Echo „Zapewnij katalog do oceny:”
Przeczytaj Target_dir
CD $ Target_dir
linki = $ (znajdź . -MaxDepth1 -Type l -ls | awk 'drukuj 11 $')
dla linków w linkach
Do
echo "$ link -> $ (czytlink $ link)"
zrobione

Skrypt zaczyna się od prośby użytkownika o ocenę katalogu. Następnie skrypt trafia do dostarczonego katalogu i znajduje wszystkie symboliczne łącza w katalogu i przekazuje dane wyjściowe do AWK.

AWK analizuje wyjście i lokalizuje tylko łącza symboliczne i zapisuje je do zmiennej o nazwie Links.

Następnie tworzymy pętlę, która pobiera każdy link w linkach i ocenia ich wartość docelową za pomocą polecenia ReadLink.

Wreszcie, odzwierciedlamy symboliczny link i katalog docelowy. Poniżej znajduje się przykład wyjścia:

W powyższym przykładzie znajdujemy wszystkie symboli w katalogu /etc i drukujemy ich docelowe plik lub katalogu.

Wniosek

W tym samouczku omówiliśmy podstawy używania symbolicznych linków w Linux. Następnie stworzyliśmy prosty skrypt, aby znaleźć symboliczne linki w określonym katalogu i pokazaliśmy ich źródło i cel.

Dziękuję za przeczytanie!