Files
it-know-how/Linux/BASH Basics/Symlinks.md
T

2.0 KiB

Symbolische Links (Symlinks)

Ein symbolischer Link (Symlink) ist eine spezielle Datei, die auf eine andere Datei oder ein Verzeichnis verweist.

ln -s /pfad/zum/ziel /pfad/zum/link

Optionen:

  • -s → Symlink erstellen (statt Hardlink)
  • -f → vorhandenen Link überschreiben
  • -n → falls Link auf Verzeichnis verweist, Link selbst überschreiben

Beispiel:

ln -s /opt/programm/binary /usr/local/bin/programm
readlink meinlink

Mit absolutem Pfad (löst verschachtelte Links auf):

readlink -f meinlink

Beispiel:

$ readlink mysoftlink
../zielordner/datei.txt

$ readlink -f mysoftlink
/home/user/zielordner/datei.txt

Einen Symlink kann man nicht direkt ändern, sondern muss ihn neu erstellen:

ln -sfn /neues/ziel meinlink

Beispiel:

#!/bin/bash
link="meinlink"

# Aktuelles Ziel auslesen
altes_ziel=$(readlink "$link")
echo "Aktuelles Ziel: $altes_ziel"

# Neues Ziel setzen
neues_ziel="/pfad/zum/neuen/ziel"
ln -sfn "$neues_ziel" "$link"

echo "Neues Ziel: $(readlink $link)"

Symlinks:

  • Verweisen auf Pfad (nicht auf Inode)
  • Können auf Dateien und Verzeichnisse verweisen
  • Funktionieren über Dateisystemgrenzen hinweg
  • Brechen, wenn Ziel gelöscht wird

Hardlinks:

  • Verweisen direkt auf Inode
  • Nur für Dateien (nicht für Verzeichnisse)
  • Müssen im gleichen Dateisystem liegen
  • Bleiben gültig, auch wenn Originaldatei gelöscht wird

Desktop-Verknüpfungen erstellen

Für Desktop-Umgebungen (GNOME, KDE, XFCE) verwendet man .desktop-Dateien:

weblink.desktop:

[Desktop Entry]
Name=Open ChatGPT
Type=Link
URL=https://chat.openai.com/
Icon=web-browser

Ausführbar machen:

chmod +x weblink.desktop

Siehe auch

  • find - Dateien suchen (z.B. nach Symlinks mit -type l)
  • ls - Symlinks in Verzeichnissen anzeigen
  • Dateiberechtigungen - Rechte von Links und Zielen
  • lsblk - Block-Geräte anzeigen