Linuxには、WindowsのC:\Temp
フォルダのように、一般的に使用される標準の一時ディレクトリがありますか。もしそうなら、それはどこにありますか? プログラムでtmp
ディレクトリを見つけることについてのSO質問 が、XML設定ファイルで一時的な場所を事前に設定したいのですが。
Filesystem Hierarchy Standard バージョン3.0は、次のように述べています。
/ tmp:一時ファイル
一時ファイルを必要とするプログラムでは、
/tmp
ディレクトリーを使用可能にする必要があります。プログラムは、
/tmp
内のファイルまたはディレクトリがプログラムの呼び出しの間に保存されると仮定してはなりません。根拠
IEEE標準POSIX.1-2008には、上記のセクションと同様の要件がリストされています。
/tmp
に格納されているデータはサイト固有の方法で削除される可能性がありますが、システムが起動されるたびに/tmp
に配置されているファイルとディレクトリを削除することをお勧めします。FHSはこれまでの先例と慣例に基づいてこの勧告を追加しましたが、システム管理はこの規格の範囲内ではないため、この勧告を要件にしませんでした。
/ var/tmp:システムを再起動しても一時ファイルは保持されます
/var/tmp
ディレクトリは、システムの再起動時に保持される一時ファイルまたはディレクトリを必要とするプログラムで使用可能になります。したがって、/var/tmp
に格納されているデータは、/tmp
に格納されているデータよりも永続的です。システムの起動時に
/var/tmp
にあるファイルとディレクトリを削除しないでください。/var/tmp
に格納されているデータは通常サイト固有の方法で削除されますが、削除は/tmp
よりも少ない頻度で実行することをお勧めします。
また、 The Open Groupの基本仕様第7版、環境変数 には、次のように記載されています。
TMPDIR
この変数は、一時ファイルを作成する場所が必要なプログラムで利用可能になったディレクトリのパス名を表します。
これは古い質問ですので、今日は別の選択肢があります。 systemd
(その90%)に依存しているLinuxディストリビューションは現在、$XDG_RUNTIME_DIR
ディレクトリ( XDGベースディレクトリ指定 )を使用して特定の種類の一時ファイルを保存できます。通常は/run/user/$uid
にあります。これは、700
権限を持つユーザーごとのディレクトリで、セキュリティが向上しています。これはパフォーマンスを提供するtmpfs
マウントです。 tmpfs
のマイナス面は、小さなファイルやソケットを保存するためだけに使われるべきだということです。
私はそれを/tmp
と/var/run
の結婚と見ています。
どのLinuxシステムでも機能するように、事前に単一の一時ディレクトリ名を選択することはできません。実際、Windowsでもそれはできません。 Wikipedia の一時フォルダに関する記事 によると、Windows上の一時ディレクトリは環境変数TEMPによって決定されます。 WindowsシステムでTEMPを別のものに設定する一時ディレクトリとして単にc:\Temp
を使用している場合、一時ディレクトリを選択するためにXMLファイルを使用するプログラムはすべて失敗します。
つまり、システムの一時ディレクトリは、私が知っている最近のすべてのオペレーティングシステム(WindowsとUNIXに似たシステムの両方を含む)の環境によって決定されます。一時ディレクトリとして単一の静的パスを設定しても、デフォルトが変更されていない限り機能します。
とにかく、典型的なLinuxシステムの標準の一時ディレクトリは/tmp
です。これはのみデフォルトの一時ディレクトリであり、ユニバーサルではないという意味で、C:\Temp
と同等です。 /tmp
が使用可能であっても、ユーザー(またはシステム)がTEMP環境変数を設定している場合は、その変数の値を代わりに使用する必要があります。
あなたが作成できるユーザーのホームディレクトリからの相対的な一時ディレクトリを選択してみてください。
最初の質問は、Linuxには標準の一時ディレクトリがありますか?もしそうなら、それはどこにありますか? tmpフォルダーは次の場所にあります:File System/tmpおよびFile System/var/tmp/tmpの内容は削除できます-「必要に応じて」のさまざまなアプリで必要な/必要でないファイル/フォルダーを知っている場合基礎。通常、不要なファイルは、その時点でのみアプリ自体を容易にするためにアプリによってダウンロードされたファイルです。したがって、アプリの実行後にそれ以上は必要ありません。/var/tmpフォルダーには一切触れないでください。