web-dev-qa-db-ja.com

/ tmpと/ var / tmpの違いは何ですか?

ほとんどの [〜#〜] fhs [〜#〜] システムでは、/tmpフォルダと/var/tmpフォルダ。 2つの機能的な違いは何ですか?

144
Wesley

/tmpは、寿命が短く、高速な(おそらく小さい)ストレージです。多くのシステムは/tmpを非常に高速にクリーンアップします-一部のシステムでは、RAMディスクとしてマウントされています。 /var/tmpは通常、物理ディスク上にあり、サイズが大きく、一時ファイルを長時間保持できます。一部のシステムは/var/tmpもクリーニングしますが、頻度は低くなります。

また、/var/tmp/varがマウントポイントである可能性があるため、初期ブートプロセスでは/var/tmpを使用できない場合があることに注意してください。したがって、これは/bin/usr/binの違いに少し似ています。前者はシステムのすべてがマウントされた後の初期ブート時に使用できます。そのため、ほとんどのブートスクリプトは、一時ファイルに/tmpではなく/var/tmpを使用します。

Linuxでの一時ファイル用の別の(今後の)場所は/dev/shmです。

122
Nils

/tmpは、再起動時にクリーンアップされる場合があります。 /var/tmpは、再起動しても保持されます。

FHSに関するWikipediaの記事 を参照してください。

27
njsg

目的と機能は同じです。 UNIX/Linuxのすべてのバージョンは、これらのディレクトリを別々に処理します。歴史的に、RAM /スワップベースのファイルシステムが登場する前は、/および/usrファイルシステムが読み取り専用で、/var(変数)が読み取り可能なディスクレスシステムがありました。書く。 /tmpの名前は/var/tmpへのシンボリックリンクになります。その後、ディスクレスシステムは時代遅れになり、ディスクスペースは(ルートファイルシステムを大きくするために)安価になり、ファイルシステムをディスクではなくメモリからマウントできるようになりました。 /var/tmpディレクトリは時代遅れですが、一部のプログラムではまだ使用されています。

最近では、/tmpの権限と同様に、g+s,+tのようにデフォルトでセキュリティが強化されていますが、/var/tmpのセキュリティは設定されていません。また、/var/tmpがRAMまたはswapからマウントされることはほとんどありません。

15
Arcege

POSIX基本仕様、第7版/ tmp

以下のディレクトリは、準拠システム上に存在し、説明どおりに使用されるものとします。

/ tmp

一時ファイルを作成する場所を必要とするアプリケーションで使用できるように作成されたディレクトリ。アプリケーションは、このディレクトリにファイルを作成することを許可されますが、そのようなファイルがアプリケーションの呼び出し間で保存されるとは想定しません。

ファイル階層標準2.3の/ 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よりも少ない頻度で行うことをお勧めします。

12
osvein