ほとんどの [〜#〜] fhs [〜#〜] システムでは、/tmp
フォルダと/var/tmp
フォルダ。 2つの機能的な違いは何ですか?
/tmp
は、寿命が短く、高速な(おそらく小さい)ストレージです。多くのシステムは/tmp
を非常に高速にクリーンアップします-一部のシステムでは、RAMディスクとしてマウントされています。 /var/tmp
は通常、物理ディスク上にあり、サイズが大きく、一時ファイルを長時間保持できます。一部のシステムは/var/tmp
もクリーニングしますが、頻度は低くなります。
また、/var/tmp
や/var
がマウントポイントである可能性があるため、初期ブートプロセスでは/var/tmp
を使用できない場合があることに注意してください。したがって、これは/bin
と/usr/bin
の違いに少し似ています。前者はシステムのすべてがマウントされた後の初期ブート時に使用できます。そのため、ほとんどのブートスクリプトは、一時ファイルに/tmp
ではなく/var/tmp
を使用します。
Linuxでの一時ファイル用の別の(今後の)場所は/dev/shm
です。
/tmp
は、再起動時にクリーンアップされる場合があります。 /var/tmp
は、再起動しても保持されます。
FHSに関するWikipediaの記事 を参照してください。
目的と機能は同じです。 UNIX/Linuxのすべてのバージョンは、これらのディレクトリを別々に処理します。歴史的に、RAM /スワップベースのファイルシステムが登場する前は、/
および/usr
ファイルシステムが読み取り専用で、/var
(変数)が読み取り可能なディスクレスシステムがありました。書く。 /tmp
の名前は/var/tmp
へのシンボリックリンクになります。その後、ディスクレスシステムは時代遅れになり、ディスクスペースは(ルートファイルシステムを大きくするために)安価になり、ファイルシステムをディスクではなくメモリからマウントできるようになりました。 /var/tmp
ディレクトリは時代遅れですが、一部のプログラムではまだ使用されています。
最近では、/tmp
の権限と同様に、g+s,+t
のようにデフォルトでセキュリティが強化されていますが、/var/tmp
のセキュリティは設定されていません。また、/var/tmp
がRAMまたはswapからマウントされることはほとんどありません。
以下のディレクトリは、準拠システム上に存在し、説明どおりに使用されるものとします。
/ tmp
一時ファイルを作成する場所を必要とするアプリケーションで使用できるように作成されたディレクトリ。アプリケーションは、このディレクトリにファイルを作成することを許可されますが、そのようなファイルがアプリケーションの呼び出し間で保存されるとは想定しません。
/ tmpディレクトリは、一時ファイルを必要とするプログラムで使用できるようにする必要があります。
プログラムは、プログラムの呼び出し間で/ tmp内のファイルまたはディレクトリが保持されると想定してはなりません。
根拠
IEEE標準P1003.2(POSIX、パート2)は、上記のセクションと同様の要件を作成します。
/ tmpに保存されているデータはサイト固有の方法で削除できますが、システムが起動するたびに/ tmpにあるファイルとディレクトリを削除することをお勧めします。
FHSは、歴史的な前例と一般的な慣行に基づいてこの推奨事項を追加しましたが、システム管理がこの標準の範囲内にないため、これを必須にしませんでした。
POSIXは/ var/tmpを指定しません。 FHSは行います :
/ var/tmpディレクトリは、システムを再起動しても保持される一時ファイルまたはディレクトリを必要とするプログラムで使用できます。したがって、/ var/tmpに保存されているデータは、/ tmpに保存されているデータよりも永続的です。
/ var/tmpにあるファイルとディレクトリは、システムの起動時に削除しないでください。 / var/tmpに保存されているデータは通常サイト固有の方法で削除されますが、削除は/ tmpよりも少ない頻度で行うことをお勧めします。