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


63

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


1
これは本当に簡単な質問のように見えますが、検索で明確で簡単な答えが見つかりませんでした。私が得た結果の多くは、プログラム固有の一時ディレクトリ/ファイルに対するものでした。に複数の参照が/tmpありましたが、それがLinuxの標準なのか、それとも単なる一般的な規則なのか、あいまいでした。
ポップス

5
Windows C:\Tempは、確かに標準ではありませ。Windows 95はすでにを%TEMP%指していましたC:\WINDOWS\Temp
-grawity

回答:


91

ファイルシステム階層標準のバージョン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 Base Specifications Issue 7、Environment Variablesには次のことが記載されています。

TMPDIR この変数は、一時ファイルを作成する場所を必要とするプログラムで使用できるディレクトリのパス名を表します。


標準と議論するのは難しいです。ありがとう!
ポップス

11

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

私はの結婚としてそれを見て/tmp/var/run


確かな技術は5年前から改善されている
ヤスの

10

はい/ tmpは一般的な使用のためのものです。ファイルシステム階層標準についてはこちらこちらをご覧ください。

/ tmp /一時ファイル(/ var / tmpも参照)。多くの場合、システムのリブート間で保持されません。

PDFにいくつかの詳細がリストされています。


2

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

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

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

作成できるユーザーのホームディレクトリに関連する一時ディレクトリを選択してみてください。


私の場合、デフォルトがまだ存在しているというのは安全な仮定だと思いますが、これは心に留めておくべきことです。
ポップス

bash、gcc、inkscape、またはlynxなどの一部のプログラムは、TMPDIR環境変数を使用します。
クリスチャン・シウピトゥ

@Ryan、なぜ/tmptemp変数を管理するのですか?
パセリエ

0

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


1
この回答は、受け入れられた回答よりも多くの情報を提供しないため、まったく役に立ちません。
zx485
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.