web-dev-qa-db-ja.com

Linuxの一時ディレクトリはどこにありますか?

Linuxには、WindowsのC:\Tempフォルダのように、一般的に使用される標準の一時ディレクトリがありますか。もしそうなら、それはどこにありますか? プログラムでtmpディレクトリを見つけることについてのSO質問 が、XML設定ファイルで一時的な場所を事前に設定したいのですが。

55
Pops

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この変数は、一時ファイルを作成する場所が必要なプログラムで利用可能になったディレクトリのパス名を表します。

85

これは古い質問ですので、今日は別の選択肢があります。 systemd(その90%)に依存しているLinuxディストリビューションは現在、$XDG_RUNTIME_DIRディレクトリ( XDGベースディレクトリ指定 )を使用して特定の種類の一時ファイルを保存できます。通常は/run/user/$uidにあります。これは、700権限を持つユーザーごとのディレクトリで、セキュリティが向上しています。これはパフォーマンスを提供するtmpfsマウントです。 tmpfsのマイナス面は、小さなファイルやソケットを保存するためだけに使われるべきだということです。

私はそれを/tmp/var/runの結婚と見ています。

11
oᴉɹǝɥɔ

はい/ tmpは一般用です。ファイルシステム階層標準については、 こちら および こちら をご覧ください。

/ tmp /一時ファイル(/ var/tmpも参照)多くの場合、システムを再起動しても保存されません。

PDFに記載されている詳細について.

10
OldWolf

どのLinuxシステムでも機能するように、事前に単一の一時ディレクトリ名を選択することはできません。実際、Windowsでもそれはできません。 Wikipedia の一時フォルダに関する記事 によると、Windows上の一時ディレクトリは環境変数TEMPによって決定されます。 WindowsシステムでTEMPを別のものに設定する一時ディレクトリとして単にc:\Tempを使用している場合、一時ディレクトリを選択するためにXMLファイルを使用するプログラムはすべて失敗します。

つまり、システムの一時ディレクトリは、私が知っている最近のすべてのオペレーティングシステム(WindowsとUNIXに似たシステムの両方を含む)の環境によって決定されます。一時ディレクトリとして単一の静的パスを設定しても、デフォルトが変更されていない限り機能します。

とにかく、典型的なLinuxシステムの標準の一時ディレクトリは/tmpです。これはのみデフォルトの一時ディレクトリであり、ユニバーサルではないという意味で、C:\Tempと同等です。 /tmpが使用可能であっても、ユーザー(またはシステム)がTEMP環境変数を設定している場合は、その変数の値を代わりに使用する必要があります。

あなたが作成できるユーザーのホームディレクトリからの相対的な一時ディレクトリを選択してみてください。

1
Ryan Thompson

最初の質問は、Linuxには標準の一時ディレクトリがありますか?もしそうなら、それはどこにありますか? tmpフォルダーは次の場所にあります:File System/tmpおよびFile System/var/tmp/tmpの内容は削除できます-「必要に応じて」のさまざまなアプリで必要な/必要でないファイル/フォルダーを知っている場合基礎。通常、不要なファイルは、その時点でのみアプリ自体を容易にするためにアプリによってダウンロードされたファイルです。したがって、アプリの実行後にそれ以上は必要ありません。/var/tmpフォルダーには一切触れないでください。

0
FranklynA