menabung / tmp tidak benar-benar menabung?

10

Buka misalnya lampiran surat dari Firefox (tanpa sebelumnya menyimpannya); ini adalah dokumen Libre Office, Anda mengeditnya, lalu mendorong simpan (tidak menyimpan sebagai) dan menutup editor teks dan peramban. Kemudian dokumen itu hilang, karena disimpan secara default di /tmp. Setidaknya ini yang terjadi pada Ubuntu 12.04 saya.

Apakah Anda pikir ini perilaku yang benar? Bukankah seharusnya program setidaknya mengingatkan Anda bahwa Anda tidak benar-benar menyimpan sesuatu? atau adakah cara untuk memulihkan file (juga setelah logout dan / atau reboot)?

jj_p
sumber

Jawaban:

10

Bermain-main dengan ini saya menemukan bahwa ketika Anda memilih untuk membuka dokumen dengan program eksternal di Firefox, yang terjadi adalah Firefox mengunduh program /tmpdan kemudian menjalankan program yang dipilih dengan file yang diunduh sebagai argumen (baca 'membuka file dengan program yang dipilih ').

Jika Anda kemudian menyimpan file (tanpa memilih Save Asatau yang setara) dari dalam program, ia akan menggunakan file ini di /tmp.

Firefox akan membersihkan file-file sementara ini ketika ditutup. Jadi Anda dapat memulihkan file jika Anda menutup LibreOffice, tetapi bukan Firefox. Namun, segera setelah Firefox ditutup, file tersebut akan dihapus.

Pada sebagian besar distro (semua?), /tmpFolder juga akan dikosongkan saat reboot (file-file di /var/tmpdalamnya akan bertahan lebih lama).

Perhatikan juga bahwa perilaku ini hanya untuk 'membuka' file dengan program eksternal. Jika file dibuka secara internal melalui plugin atau sebaliknya, maka itu tampaknya /tmptidak digunakan (file tersebut tampaknya di-cache di tempat lain bersama dengan halaman web sendiri).

Memperbarui

Untuk referensi (saya tidak merekomendasikan melakukan ini kecuali diperlukan), Anda dapat menonaktifkan penghapusan /tmpfile ketika firefox ditutup menggunakan browser.helperApps.deleteTempFileOnExitopsi. Ini dapat diatur melalui about:confighalaman (cukup ketik ini di bilah alamat dan tekan enter). Jika ada dan ada false, klik kanan padanya dan pilih toggle. Jika tidak, tambahkan dengan melakukan Klik Kanan-> Baru-> Boolean , lalu masukkan nama opsi dan pilih false.

Untuk menyimpan /tmpfile setelah reboot berikutnya pada sistem berbasis Debian baru-baru ini, pertama-tama lihat /etc/default/tmpfsdan pastikan tidak ada RAMTMP=yesgaris. Jika itu dikomentari ( #di awal), ini baik-baik saja (jika sudah diatur maka /tmpakan berada di tmpfssistem file di memori dan tidak akan disimpan pada disk). Selanjutnya tambahkan atau ubah TMPTIMEbaris /etc/default/rcS. Untuk menyimpan /tmpfile tanpa batas yang dapat Anda lakukan:

TMPTIME=infinite

Atau Anda dapat menggunakan angka positif alih-alih infinitemempertahankannya selama beberapa hari itu, begitu waktunya habis, mereka akan dihapus pada reboot berikutnya. Jelas jika baris ini dikomentari, batalkan komentar itu.

Graeme
sumber
Perhatikan bahwa fakta yang /tmpdihapus saat reboot adalah karena /tmpdipasang sebagai tmpfs, yang menyimpan file-nya dalam RAM (atau swap), sehingga kehilangan isinya setelah melepasnya.
Darkhogg
1
@ Arkhogg, bukan kopernya. /tmpfile biasanya secara khusus dihapus. Saya telah memperbarui dengan bagaimana pengaturan untuk ini dapat diubah pada sistem berbasis Debian.
Graeme
Tidak tahu tentang itu! Beri +1 pada komentar itu.
Darkhogg
1
Ketika sebuah file dibuka di Firefox melalui sebuah plugin, plugin tersebut dapat menentukan bagaimana file itu ingin dikirimkan: pada disk, atau langsung ke memori. Sebagian besar plugin memilih memori.
Markus
3

Firefox memiliki cache untuk "membuka" file. Tembolok ini dihapus setiap kali Anda menutup Firefox. Jika Anda membuka file itu dengan LO, dan tutup Firefox Anda akan melihat bahwa file itu akan hilang. Ini berlaku untuk semua Firefox secara independen tempat mereka disimpan /tmpatau tidak.

Braiam
sumber
2

Apakah Anda pikir ini perilaku yang benar?

Saya harus mengatakan bahwa saya tidak berpikir demikian. Tapi kemudian saya agak bias, hampir kehilangan enam jam kerja karena kekhasan ini.

Saya pikir setiap GUI yang memungkinkan pengguna melakukan sesuatu yang berpotensi bencana tanpa memperingatkan mereka adalah cacat, tidak peduli seberapa "logis" keputusan desain di belakangnya. Ini terutama terjadi ketika pengguna dapat melakukan hal yang persis sama di program serupa (seperti Chrome) tanpa efek buruk.

Bukankah seharusnya program setidaknya mengingatkan Anda bahwa Anda tidak benar-benar menyimpan sesuatu?

Hmmm ... mungkin sembulan dengan kotak centang bertuliskan "Jangan tampilkan pesan ini lagi" akan bermanfaat. Yang lebih bermanfaat adalah perbaikan kecil untuk LibreOffice dan program serupa memperingatkan pengguna jika file yang disimpan disimpan di / tmp atau di mana pun. Maksud saya, jika Anda menekan "save", Anda berharap file tersebut disimpan di suatu tempat, bukan?

atau adakah cara untuk memulihkan file (juga setelah logout dan / atau reboot)?

Ya, jika Anda beruntung. Saya mem-boot komputer saya dari instalasi linux usb dan berhasil memulihkan file menggunakan extundelete.

Matt_M
sumber
2

Biarkan saya jelaskan. Saat Anda memilih "Buka dengan" sebagai kebalikan dari "Unduh ke" dalam dialog, file tersebut masih diunduh, di mana Firefox membuka file yang diunduh dengan aplikasi. Namun, asumsinya adalah Anda tidak ingin menyimpan file tersebut, sehingga file ini dihapus ketika firefox keluar. Jika Anda ingin menyimpannya, Anda harus memilih "Unduh untuk", atau menggunakan "Simpan sebagai" di aplikasi Anda, atau cukup memindahkan file dari / var / tmp (tempat filefox menyimpannya); penghapusan hanya berlaku untuk file di lokasi aslinya.

Perhatikan bahwa file tersebut dihapus bahkan jika aplikasi lain tetap membuka (dalam arti teknis). Pada sistem mirip Unix, ini bukan masalah: ketika entri direktori hilang, file itu sendiri tetap dan tidak akan dihapus sampai aplikasi menutupnya [kerusakan pada titik ini mungkin meninggalkan disk pada keadaan tidak konsisten; fsck melaporkan situasi ini sebagai "inode yang tidak terhubung"]

Lior Silberman
sumber
-1

Apakah Anda pikir ini perilaku yang benar?

Tentu saja itu adalah perilaku yang benar. Ini hanya terjadi ketika Anda tidak memilih untuk menyimpan file tetapi memilih untuk membukanya . Menurut pendapat saya, biasanya lebih baik menyimpan semuanya daripada membuka.

Bukankah seharusnya program setidaknya mengingatkan Anda bahwa Anda tidak benar-benar menyimpan sesuatu?

Mengapa? Jika Anda ingin menyimpan, mengapa Anda tidak memilih untuk mengunduh file?

atau adakah cara untuk memulihkan file (juga setelah logout dan / atau reboot)?

Nggak. Anda harus menyalinnya ketika masih dalam tmp.

Pavel Šimerda
sumber