Ich versuche, den Prozess der Pfadauflösung (siehe Manpage path_resolution) in Unix-ähnlichen Systemen zu emulieren.
Mein Betriebssystem ist Linux mit GNU Coreutils 8.7.
Um die Bedeutung eines zusätzlichen nachgestellten '/' in der Auflösung zu verdeutlichen, habe ich folgende Dinge in einer Shell getan:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link
Alles war in Ordnung, da this_is_link ein Symlink ist und ich ihn einfach entfernt habe. Aber beim Versuch:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link/
Es hallte wider rm: cannot remove 'this_is_link/': Is a directory
Nun, das nachfolgende '/' verursachte das Folgen von Symlink, dachte ich. Also habe ich einen anderen Befehl ausprobiert:rmdir this_is_link/
Und ein lustiges Ergebnis kam heraus: rmdir: failed to remove 'this_is_link/': Not a directory
Nicht das was ich erwartet habe. Also bat ich meinen Freund zu bestätigen, ob das gleiche Ergebnis auf seinem System erzielt werden konnte. Er hatte eine niedrigere Version von Coreutils als ich. Und das Ergebnis war erstaunlich, egal rm
oder rmdir 'this_is_link/'
der gleiche Fehler Not a directory
tritt auf .
Und ein anderer Freund hat es gerade unter Mac OS ausprobiert. Das Ergebnis ist: rm
=> 'Ist ein Verzeichnis', rmdir
=> das Verzeichnis wurde erfolgreich gelöscht, der Link blieb erhalten .
Gibt es Angaben zum genauen Verhalten der Pfadauflösung?