Speichern in / tmp ist nicht wirklich Speichern?

10

Öffnen Sie z. B. einen E-Mail-Anhang von Firefox (ohne ihn zuvor zu speichern). Dies ist ein Libre Office-Dokument. Sie bearbeiten es und klicken dann auf Speichern (nicht speichern unter) und schließen sowohl den Texteditor als auch den Browser. Dann verschwindet das Dokument, da es standardmäßig in gespeichert wurde /tmp. Zumindest ist dies bei meinem Ubuntu 12.04 der Fall.

Denken Sie, dass dies das richtige Verhalten ist? Sollte das Programm Sie nicht zumindest daran erinnern, dass Sie nicht wirklich etwas speichern? oder gibt es eine Möglichkeit, die Datei wiederherzustellen (auch nach dem Abmelden und / oder Neustarten)?

jj_p
quelle

Antworten:

10

Wenn ich damit herumspiele, stelle ich fest, dass Firefox beim Öffnen eines Dokuments mit einem externen Programm in Firefox das Programm herunterlädt /tmpund dann das ausgewählte Programm mit der heruntergeladenen Datei als Argument ausführt (read 'öffnet die Datei mit das gewählte Programm ').

Wenn Sie die Datei dann (ohne Auswahl Save Asoder gleichwertig) aus dem Programm heraus speichern, wird diese Datei in verwendet /tmp.

Firefox bereinigt diese temporären Dateien beim Schließen. Sie können die Datei also wiederherstellen, wenn Sie LibreOffice schließen, nicht jedoch Firefox. Sobald jedoch Firefox geschlossen wird, wird die Datei gelöscht.

Bei den meisten (allen?) Distributionen wird der /tmpOrdner auch beim Neustart geleert (Dateien in /var/tmpsollten länger bestehen bleiben).

Beachten Sie auch, dass dieses Verhalten nur zum 'Öffnen' einer Datei mit einem externen Programm gilt. Wenn die Datei intern über ein Plugin oder auf andere Weise geöffnet wird, wird sie anscheinend /tmpnicht verwendet (die Datei scheint zusammen mit den Webseiten selbst an einer anderen Stelle zwischengespeichert zu sein).

Aktualisieren

Als Referenz (ich empfehle dies nicht, es sei denn, dies ist erforderlich) können Sie das Löschen von /tmpDateien deaktivieren, wenn Firefox mit dieser browser.helperApps.deleteTempFileOnExitOption geschlossen wird. Dies kann über die about:configSeite eingestellt werden (geben Sie dies einfach in die Adressleiste ein und drücken Sie die Eingabetaste). Wenn es existiert und ist false, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Umschalten. Andernfalls fügen Sie es hinzu, indem Sie mit der rechten Maustaste auf> Neu-> Boolescher Wert klicken , den Namen der Option eingeben und false auswählen.

Um /tmpDateien nach dem nächsten Neustart auf neueren Debian-basierten Systemen zu speichern, überprüfen Sie zunächst /etc/default/tmpfs, ob keine RAMTMP=yesZeile vorhanden ist. Wenn es ( #zu Beginn) auskommentiert ist, ist dies in Ordnung (wenn es festgelegt wurde, befindet /tmpes sich in einem tmpfsDateisystem im Speicher und wird nicht auf der Festplatte gespeichert). Als nächstes fügen Sie die TMPTIMEZeile hinzu oder ändern sie /etc/default/rcS. So speichern Sie /tmpDateien auf unbestimmte Zeit:

TMPTIME=infinite

Oder Sie können eine positive Zahl verwenden, anstatt infinitesie für diese Anzahl von Tagen aufzubewahren. Sobald ihre Zeit abgelaufen ist, werden sie beim nächsten Neustart gelöscht. Wenn diese Zeile auskommentiert ist, kommentieren Sie sie natürlich aus.

Graeme
quelle
Beachten Sie, dass die Tatsache , dass /tmpbeim Neustart gelöscht wird, da /tmpwird als angebracht tmpfs, die seine Dateien im RAM gespeichert (oder Swap), so dass dessen Inhalt zu verlieren , nachdem es Aushängen.
Darkhogg
1
@ Darkhogg, nicht der Fall. /tmpDateien werden normalerweise speziell gelöscht. Ich habe aktualisiert, wie die Einstellungen hierfür auf Debian-basierten Systemen geändert werden können.
Graeme
Wusste nichts davon! +1 zu diesem Kommentar.
Darkhogg
1
Wenn eine Datei in Firefox über ein Plugin geöffnet wird, kann das Plugin angeben, wie die Datei bereitgestellt werden soll: auf der Festplatte oder direkt im Speicher. Die meisten Plugins wählen Speicher.
Mark
3

Firefox hat einen Cache zum "Öffnen" von Dateien. Dieser Cache wird jedes Mal geleert, wenn Sie Firefox schließen. Wenn Sie diese Datei mit LO öffnen und Firefox schließen, werden Sie feststellen, dass die Datei verschwindet. Dies gilt für alle Firefox, unabhängig davon, ob sie gespeichert sind /tmpoder nicht.

Braiam
quelle
2

Denken Sie, dass dies das richtige Verhalten ist?

Ich muss sagen, dass ich es nicht glaube. Aber dann bin ich ein bisschen voreingenommen, weil ich aufgrund dieser Eigenart fast sechs Stunden Arbeit verloren habe.

Ich denke, dass jede GUI, mit der der Benutzer etwas potenziell Katastrophales tun kann, ohne ihn zu warnen, fehlerhaft ist, egal wie "logisch" die dahinter stehende Entwurfsentscheidung sein mag. Dies gilt insbesondere dann, wenn Benutzer in ähnlichen Programmen (wie Chrome) genau das Gleiche ohne negative Auswirkungen tun können.

Sollte das Programm Sie nicht zumindest daran erinnern, dass Sie nicht wirklich etwas speichern?

Hmmm ... vielleicht wäre ein Popup mit einem Kontrollkästchen mit der Aufschrift "Diese Nachricht nicht mehr anzeigen" hilfreich. Noch nützlicher wäre eine kleine Korrektur für LibreOffice und ähnliche Programme, die den Benutzer warnt, wenn die von ihnen gespeicherte Datei in / tmp oder wo auch immer gespeichert wird. Ich meine, wenn Sie auf "Speichern" klicken, erwarten Sie, dass die Datei irgendwo gespeichert wird, oder?

oder gibt es eine Möglichkeit, die Datei wiederherzustellen (auch nach dem Abmelden und / oder Neustarten)?

Ja, wenn du Glück hast. Ich habe meinen Computer von einer USB-Linux-Installation gestartet und es geschafft, die Datei mit extundelete wiederherzustellen.

Matt_M
quelle
2

Lassen Sie mich erklären. Wenn Sie im Dialogfeld "Öffnen mit" anstelle von "Herunterladen auf" auswählen, wird die Datei weiterhin heruntergeladen. Zu diesem Zeitpunkt öffnet Firefox die heruntergeladene Datei mit der Anwendung. Es wird jedoch davon ausgegangen, dass Sie die Datei nicht behalten wollten, sodass diese Datei beim Beenden von Firefox gelöscht wird. Wenn Sie es behalten wollten, sollten Sie "Download to" auswählen oder "Save as" in Ihrer Anwendung verwenden oder die Datei einfach aus / var / tmp verschieben (wo filefox sie aufbewahrt). Das Löschen gilt nur für die Datei am ursprünglichen Speicherort.

Beachten Sie, dass die Datei auch dann gelöscht wird, wenn die andere Anwendung sie geöffnet hält (im technischen Sinne). Auf Unix-ähnlichen Systemen ist dies kein Problem: Während der Verzeichniseintrag verschwindet, bleibt die Datei selbst erhalten und wird erst gelöscht, wenn die Anwendung sie schließt. [Ein Absturz an dieser Stelle kann dazu führen, dass die Festplatte in einem inkonsistenten Zustand bleibt. fsck meldet diese Situation als "nicht verknüpfte Inode"]

Lior Silberman
quelle
-1

Denken Sie, dass dies das richtige Verhalten ist?

Natürlich ist es das richtige Verhalten. Es geschieht nur , wenn Sie nicht wählen haben speichern Sie die Datei , sondern entschied sich zu öffnen es. Meiner Meinung nach ist es normalerweise besser, alles zu speichern, als es zu öffnen.

Sollte das Programm Sie nicht zumindest daran erinnern, dass Sie nicht wirklich etwas speichern?

Warum? Wenn Sie speichern wollten, warum haben Sie die Datei nicht heruntergeladen?

oder gibt es eine Möglichkeit, die Datei wiederherzustellen (auch nach dem Abmelden und / oder Neustarten)?

Nee. Sie müssten es kopieren, wenn es noch in tmp ist.

Pavel Šimerda
quelle