merging and cleaning up
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Symbolische Links (Symlinks)
|
||||
|
||||
Ein symbolischer Link (Symlink) ist eine spezielle Datei, die auf eine andere Datei oder ein Verzeichnis verweist.
|
||||
|
||||
## Symlink erstellen
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
ln -s /opt/programm/binary /usr/local/bin/programm
|
||||
```
|
||||
|
||||
## Ziel eines Symlinks anzeigen
|
||||
|
||||
```bash
|
||||
readlink meinlink
|
||||
```
|
||||
|
||||
Mit absolutem Pfad (löst verschachtelte Links auf):
|
||||
|
||||
```bash
|
||||
readlink -f meinlink
|
||||
```
|
||||
|
||||
Beispiel:
|
||||
|
||||
```bash
|
||||
$ readlink mysoftlink
|
||||
../zielordner/datei.txt
|
||||
|
||||
$ readlink -f mysoftlink
|
||||
/home/user/zielordner/datei.txt
|
||||
```
|
||||
|
||||
## Symlink aktualisieren
|
||||
|
||||
Einen Symlink kann man nicht direkt ändern, sondern muss ihn neu erstellen:
|
||||
|
||||
```bash
|
||||
ln -sfn /neues/ziel meinlink
|
||||
```
|
||||
|
||||
Beispiel:
|
||||
|
||||
```bash
|
||||
#!/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 vs. Hardlinks
|
||||
|
||||
**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:**
|
||||
```ini
|
||||
[Desktop Entry]
|
||||
Name=Open ChatGPT
|
||||
Type=Link
|
||||
URL=https://chat.openai.com/
|
||||
Icon=web-browser
|
||||
```
|
||||
|
||||
Ausführbar machen:
|
||||
|
||||
```bash
|
||||
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
|
||||
Reference in New Issue
Block a user