Apa perbedaan antara / tmp dan / var / tmp?

Jawaban:

115

/tmpdimaksudkan sebagai penyimpanan cepat (mungkin kecil) dengan masa pakai yang singkat. Banyak sistem membersihkan /tmpsangat cepat - pada beberapa sistem bahkan dipasang sebagai RAM-disk. /var/tmpbiasanya terletak pada disk fisik, lebih besar dan dapat menyimpan file sementara untuk waktu yang lebih lama. Beberapa sistem juga bersih /var/tmp, tetapi lebih jarang.

Perhatikan juga bahwa /var/tmpmungkin tidak tersedia pada proses boot awal, karena /vardan / atau /var/tmpmungkin mountpoints. Jadi itu sedikit sebanding dengan perbedaan antara /bindan /usr/bin. Yang pertama tersedia saat boot awal - yang terakhir setelah sistem telah me-mount semuanya. Jadi sebagian besar skrip boot akan digunakan /tmpdan bukan /var/tmpuntuk file sementara.

Lokasi lain (yang akan datang) di Linux untuk file sementara adalah /dev/shm.

Nils
sumber
4
Saya merasa sedikit ironis /bindan /usr/binsebenarnya sama saja hari ini (symlinks). ;-)
Felix Schwarz
2
@ Feliks Belum di semua distribusi. Tetapi Linux bergerak seperti itu. Mungkin karena disk menjadi lebih besar dan lebih besar.
Nils
27

/tmpmungkin, dan kadang-kadang, dibersihkan saat reboot. /var/tmpdipertahankan antara reboot.

Lihat artikel Wikipedia di FHS .

njsg
sumber
1
/ tmp bahkan dapat membersihkan file yang dibuat oleh suatu proses segera setelah itu keluar!
osvein
15

Mereka memiliki tujuan dan fungsi yang sama. Setiap versi UNIX / Linux akan menangani direktori ini secara berbeda. Secara historis, sebelum munculnya filesystem RAM / swap yang berbasis, Anda memiliki sistem disk-kurang mana /dan /usrfilesystem akan read-only dan /var(variabel) akan baca-tulis. The /tmpnama akan menjadi symbolic link ke /var/tmp. Kemudian, sistem tanpa-disk keluar dari gaya, ruang disk menjadi lebih murah (untuk memiliki file root yang lebih besar) dan teknologi memungkinkan sistem file yang dipasang dari memori alih-alih disk. The /var/tmpdirektori jatuh dari gaya, tetapi masih digunakan oleh beberapa program.

Saat ini, lebih banyak keamanan diatur secara default aktif /tmp, seperti g+s,+tizin, tetapi tidak aktif /var/tmp. Selain itu, /var/tmpjarang dipasang dari RAM atau swap.

Arcege
sumber
pada sistem debian dan fedora saya, / tmp dan / var / tmp memiliki mode yang sama - a+rwx+t- dan tidak g+s.
sourcejedi
12

Spesifikasi Basis POSIX, Edisi 7 on / tmp :

Direktori berikut harus ada pada sistem yang sesuai dan harus digunakan seperti yang dijelaskan:

/ tmp

Direktori yang tersedia untuk aplikasi yang membutuhkan tempat untuk membuat file sementara. Aplikasi harus diizinkan untuk membuat file dalam direktori ini, tetapi tidak boleh berasumsi bahwa file tersebut disimpan antara doa aplikasi.

Standar Hierarki File 2.3 pada / tmp :

Direktori / tmp harus tersedia untuk program yang memerlukan file sementara.

Program tidak boleh berasumsi bahwa file atau direktori apa pun di / tmp disimpan di antara pemanggilan program.

Alasan

Standar IEEE P1003.2 (POSIX, bagian 2) membuat persyaratan yang mirip dengan bagian di atas.

Meskipun data yang disimpan dalam / tmp dapat dihapus dengan cara spesifik situs, disarankan agar file dan direktori yang berada di / tmp dihapus setiap kali sistem di-boot.

FHS menambahkan rekomendasi ini berdasarkan preseden historis dan praktik umum, tetapi tidak menjadikannya persyaratan karena administrasi sistem tidak berada dalam ruang lingkup standar ini.

POSIX tidak menentukan / var / tmp . FHS melakukannya :

Direktori / var / tmp tersedia untuk program yang memerlukan file atau direktori sementara yang disimpan di antara reboot sistem. Oleh karena itu, data yang disimpan di / var / tmp lebih persisten daripada data di / tmp .

File dan direktori yang terletak di / var / tmp tidak boleh dihapus ketika sistem di-boot. Meskipun data yang disimpan dalam / var / tmp biasanya dihapus dengan cara spesifik situs, disarankan agar penghapusan terjadi pada interval yang lebih jarang daripada / tmp .

osvein
sumber
Ahhh, saya suka dokumentasi. Sekarang saya tahu bahwa saya tahu, dan mengapa saya percaya bahwa saya mengetahuinya. Kebutuhan epistemologis saya sangat terpuaskan saat ini.
Stephen C