Bash -Skript, um ein Symlink -Ziel zu erhalten

Bash -Skript, um ein Symlink -Ziel zu erhalten
Wir sind alle mit symbolischen Links unter Linux vertraut. Ein symbolischer Link ist allgemein als Symlinks oder Soft Links bekannt. Es ist eine bestimmte Datei, die auf eine andere Datei oder ein anderes Verzeichnis in jedem Dateisystem verweist.

In diesem kurzen Tutorial werden wir die Grundlagen symbolischer Links unter Linux durchgehen und ein einfaches Bash -Skript erstellen, um das Ziel des symbolischen Links zu erreichen.

Arten symbolischer Links

Es gibt hauptsächlich zwei Arten symbolischer Links, nämlich:

Harte Links:

Harte Links sind direkte Hinweise auf eine Datei oder ein Verzeichnis in einem Dateisystem. Harte Links können nur im selben Dateisystem wie die Zieldatei erstellt werden.

Weiche Links:

Auf der anderen Seite sind weiche Links indirekte Abkürzungen zu einer Datei oder einem Verzeichnis und können überall in einem Dateisystem existieren. Soft Links können auf die Datei in einem anderen Dateisystem hinweisen.

So erstellen Sie symbolische Links

Um einen symbolischen Link unter Linux zu erstellen, verwenden wir den Befehl LN. Durch Ausführen des Befehls ohne Optionen wird ein harter Link zur angegebenen Zieldatei erstellt.

Die allgemeine Syntax für den Befehl LN lautet:

ln [Optionen]

Wie bereits erwähnt, erstellt der obige Befehl einen harten Link zum Zieldatei. Verwenden Sie die Option -S -Option, um einen weichen symbolischen Link zu erstellen::

ln -S [Option]

Beispiel 1

Lassen Sie uns die Datei auth nehmen.Anmelden in /var /Protokoll. Wir können einen Link zur Datei in unserem Heimverzeichnis erstellen, indem wir den Befehl als:

ln -S/var/log/auth.log auth.Protokoll

Der obige Befehl erstellt einen Link, der auf die Hauptdatei zeigt. Wir können dies durch den Befehl LS überprüfen:

ls -la

Beispiel #2

Sie können auch eine ähnliche Operation in einem Verzeichnis ausführen. Um einen Link zu /var /log zu erstellen, verwenden wir den Befehl:

ln -S /var /log Protokoll

In ähnlicher Weise wird ein Soft -Link erstellt, der auf das Verzeichnis Ziel /VAR /Protokoll hinweist:

ls -la

So entfernen Sie symbolische Links

Um einen symbolischen Link zu entfernen, verwenden wir den Befehl Unglied, gefolgt vom Pfad zum symbolischen Link zum Entfernen.

Zum Beispiel:

UNLINK ~/Log

NOTIZ: Wenn Sie die Zieldatei oder das Verzeichnis löschen, entfernen Sie den symbolischen Link, da das Verlassen eines kaputten Links erstellt wird.

So erhalten Sie eine symbolische Link -Zieldatei oder ein Verzeichnis

Jeder symbolische Link zeigt auf eine Zieldatei oder ein Verzeichnis (sofern nicht kaputt). Um die Zieldatei/das Verzeichnis eines Symlinks abzurufen, verwenden wir diesen Befehl, der das Ziel eines Symlinks anzeigt.

Zum Beispiel, um das Ziel des Auth zu erreichen.Protokolldatei, die wir in einem früheren Abschnitt erstellt haben, können wir dies tun:

Readlink Auth.Protokoll
/val/log/auth.Protokoll

Ein einfaches Bash -Skript, um Symlinks zu erhalten

Mit den obigen Konzepten können wir ein einfaches Bash -Skript zusammenstellen, das einen Pfad akzeptiert und alle Symlinks und deren Zieldateien oder Verzeichnisse auflistet.

Ein einfaches Skript wie das, das unten angegeben ist, sollte den Trick ausführen.

#!/Bin/Bash
Echo "Bieten Sie das Verzeichnis zur Bewertung:"
Lesen Sie target_dir
CD $ target_dir
Links = $ (finden . -maxdepth1 -typ l -ls | awk 'print $ 11')
Für Links in Links
Tun
echo "$ link -> $ (readlink $ link)"
Erledigt

Das Skript beginnt damit, dass der Benutzer das Verzeichnis bewertet. Anschließend geht das Skript in das bereitgestellte Verzeichnis und findet alle symbolischen Links im Verzeichnis und übergibt die Ausgabe an awk.

Awk analysiert die Ausgabe, lokalisiert nur die symbolischen Links und speichert sie in einer Variablen, die als Links bezeichnet wird.

Anschließend erstellen wir eine Schleife, die jeden Link in den Links greift und ihren Zielwert mithilfe des Befehls readlink bewertet.

Schließlich wiederholen wir den symbolischen Link und das Zielverzeichnis. Unten ist ein Beispielausgang:

Im obigen Beispiel finden wir alle Symlinks im Verzeichnis /etc und drucken ihre Zieldatei oder ihr Verzeichnis.

Abschluss

In diesem Tutorial haben wir die Grundlagen der Verwendung symbolischer Links unter Linux besprochen. Wir haben dann ein einfaches Skript erstellt, um symbolische Links in einem bestimmten Verzeichnis zu finden und ihre Quelle und ihr Ziel anzuzeigen.

Vielen Dank für das Lesen!