Beim Auflisten von Dateien im Verzeichnis sollte „~“ angezeigt werden

Beim Auflisten von Dateien im Verzeichnis sollte „~“ angezeigt werden

Ich arbeite an einer Aufgabe für die Schule und habe ein Problem damit, diesen Teil richtig zum Laufen zu bringen.

Die Aufgabe besteht darin, dass ich eine Datei in der CLI erstelle, die Datei in GEDIT öffne und bearbeite, ohne sie zu speichern, und dann das Verzeichnis aufliste. Laut den Anweisungen sollte hinter der Datei, die ich geöffnet und angehängt, aber nicht gespeichert habe, ein „~“ stehen, wenn ich das Verzeichnis aufliste, aber es wird nicht angezeigt.

Übersehe ich etwas?

Antwort1

Ja, Sie verpassen etwas: Sie erwarten nicht, diese Datei zu sehen, wenn Sieöffne es zuerst. Du wirst es nur sehennachdem Sie gespeichert habendie Datei, die Sie geöffnet haben.

Wie speichert gedit Dateien

Die aktuelle Datei wird umbenannt. Anschließend wird der geänderte Inhalt in eine neue Datei geschrieben, die den Namen der geöffneten Datei erhält.

Wenn in den „Einstellungen“, Registerkarte „Editor“, die Option „Vor dem Speichern eine Sicherungskopie der Datei erstellen“ aktiviert ist, wird die Sicherungsdatei umbenannt, indem ~dem Dateinamen ein hinzugefügt wird. Andernfalls wird sie in eine zufällige Zeichenfolge umbenannt, die mit einem Punkt beginnt .. Diese zufällig benannte Datei wird gelöscht, wenn das Speichern erfolgreich ist.

Kontrast zum Verhalten anderer, typischer terminalbasierter Editoren

Dieses Verhalten des grafischen Editors Gedit (und anderer grafischer Editoren) wirkt sich auf die Funktionsweise von Hardlinks aus. Wie oben erläutert, speichern diese Editoren Ihren geänderten Inhalt tatsächlich in einer neuen Datei, d. h. in einem neuen Inode. Linux-Hardlinks verweisen auf einen Inode. Ein Hardlink auf dieselbe Datei an einer anderen Stelle im Dateisystem verweist weiterhin auf die alten Daten und ist nicht mehr mit der geänderten Datei verknüpft. Normalerweise ist dies nicht das, was Benutzer erwarten. Dieser Ansatz ist jedoch sicherer: Wenn das Speichern fehlschlägt, bleibt der ursprüngliche Inhalt weiterhin auf der Festplatte erhalten.

Herkömmliche (insbesondere terminalbasierte) Linux-Editoren speichern den aktualisierten Inhalt im selben Inode. Sie schreiben den aktualisierten Inhalt in denselben Inode und ersetzen den alten Inhalt.

verwandte Informationen