Ich habe ein Verzeichnis wie dieses:
$ ls -l
total 899166
drwxr-xr-x 12 me scicomp 324 Jan 24 13:47 data
-rw-r--r-- 1 me scicomp 84188 Jan 24 13:47 lod-thin-1.000000-0.010000-0.030000.rda
drwxr-xr-x 2 me scicomp 808 Jan 24 13:47 log
lrwxrwxrwx 1 me scicomp 17 Jan 25 09:41 msg -> /home/me/msg
Und ich möchte es mit entfernen rm -r
.
Ich habe jedoch Angst rm -r
, dem Symlink zu folgen und alles in diesem Verzeichnis zu löschen (was sehr schlecht ist).
Ich kann nichts dazu in den Manpages finden. Wie würde es sich genau verhalten, rm -rf
von einem Verzeichnis oberhalb dieses Verzeichnisses aus zu starten?
Antworten:
Beispiel 1: Löschen eines Verzeichnisses mit einem Softlink zu einem anderen Verzeichnis.
Wir sehen also, dass das Ziel des Softlinks überlebt.
Beispiel 2: Löschen eines Softlinks zu einem Verzeichnis
Nur der Softlink wird gelöscht. Das Ziel des Softlinks überlebt.
Beispiel 3: Versuch, das Ziel eines Softlinks zu löschen
Die Datei im Ziel des symbolischen Links überlebt nicht.
Die obigen Experimente wurden auf einem Debian GNU / Linux 9.0 (Stretch) -System durchgeführt.
quelle
Ihr / home / me / msg-Verzeichnis ist sicher, wenn Sie das Verzeichnis rm -rf angeben, von dem aus Sie ls ausgeführt haben. Es wird nur der Symlink selbst entfernt, nicht das Verzeichnis, auf das er verweist.
Ich wäre nur vorsichtig, wenn Sie so etwas wie "rm -rf msg /" (mit dem abschließenden Schrägstrich) aufrufen würden. Tun Sie dies nicht, da dadurch das Verzeichnis entfernt wird, auf das msg zeigt, und nicht der msg-Symlink selbst.
quelle
rm
sollte Dateien und Verzeichnisse entfernen. Wenn es sich bei der Datei um eine symbolische Verknüpfung handelt, wird die Verknüpfung entfernt, nicht das Ziel. Es wird kein symbolischer Link interpretiert. Zum Beispiel, was sollte das Verhalten sein, wenn 'broken links'-Exits mit 0 und nicht mit ungleich Null gelöscht werden, um einen Fehler anzuzeigenquelle