Die Geschichte von der Shell und dem Ending-Slash
löscht den Symlink
rm -rf /path/to/symlink
Das derefernziert den Symlink und löscht alles worauf er zeigt
rm -rf /path/to/symlink/
Ein kleiner, aber feiner Unterschied. Ich weiß das, weil ich es auf die harte Tour gelernt habe..
Eigentlich spielt ein Slash am Ende einer Verzeichnisangabe unter Linux keine Rolle. So sind folgende Befehle identisch:
mv file dir
mv file dir/
file
würde in das Verzeichnis dir
verschoben werden. Ein unterschiedliches Verhalten ergibt sich aber dann, wenn dir
nicht existiert. Hier würde der erste Befehl die Datei umbenennen, der zweite auf das fehlender Verzeichnis in einer Fehlermeldung hinweisen.
Für einige Programme macht der ending slash aber sehr wohl ein Unterschied. Z.B. bei rsync
. Hier wird beim Quellpfad (und nur dort) ein Unterschied gemacht:
rsync -a /path/to/source /mnt/backup
rsync -a /path/to/source/ /mnt/backup
Der erste Befehl erstellt den Ordner source
unterhalb von /mnt/backup
, der zweite kopiert die Inhalte von source
direkt in /mnt/backup
.