Grundlagen von Linux und der Kommandozeile
$ echo hello > a.txt
$ ln a.txt h.txt
$ ln -s a.txt s.txt
$ rm a.txt
$ cat h.txt
$ cat s.txtWelches Ergebnis liefern die letzten beiden cat-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?
- ASowohl h.txt als auch s.txt zeigt hello an
- BBei h.txt kommt der Fehler, dass die Datei nicht gefunden wird, und s.txt zeigt hello an
- Ch.txt zeigt hello an, und bei s.txt kommt der Fehler, dass die Datei nicht gefunden wird
Antwort und Erläuterung anzeigen
Antwort: C. h.txt zeigt hello an, und bei s.txt kommt der Fehler, dass die Datei nicht gefunden wird
Ein mit ln erzeugter Hardlink ist ein weiterer Name, der auf denselben Inode (den nummerierten Datensatz, der Inhalt und Attribute einer Datei verwaltet) zeigt wie die ursprüngliche Datei. rm a.txt entfernt nur den Namen a.txt; da der Name h.txt bestehen bleibt, wird der Inhalt nicht gelöscht, und cat h.txt zeigt hello an. Ein mit ln -s erzeugter symbolischer Link ist eine eigene Datei, deren Inhalt der Pfad „a.txt“ ist; sobald a.txt verschwunden ist, gibt es kein Ziel mehr, und cat s.txt meldet den Fehler „No such file or directory“. Ein symbolischer Link, dessen Ziel verschwunden ist, bleibt auf diese Weise als defekter Link bestehen.
Weiter: 9 weitere Fragen zu Grundlagen von Linux und der Kommandozeile