2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65

Linuxのテンポラリディレクトリはどこにありますか?

Linuxには、WindowsのC:\Tempフォルダのような、一般的に使用される標準的な一時ディレクトリがありますか?あるとしたら、どこにありますか?tmpディレクトリをプログラム的に見つけることについてのSOの質問](https://stackoverflow.com/questions/31068/how-do-i-find-the-temp-directory-in-linux)を見つけたのですが、先にXML設定ファイルに一時的な場所を設定しておきたいのですが、どこにあるのでしょうか?

回答 (5)

97
97
97
2011-09-06 20:09:43 +0000

Filesystem Hierarchy Standard ](http://refspecs.linuxfoundation.org/fhs.shtml) バージョン3.0では次のように述べられています:

/tmp : Temporary files

/tmp ディレクトリは、一時ファイルを必要とするプログラムで利用できるようにしなければなりません。

/tmp ディレクトリは、一時ファイルを必要とするプログラムで利用できるようにしなければならない。

理由

IEEE標準のPOSIX.1-2008には、上記のセクションと同様の要件が記載されています。/tmpに格納されているデータは、サイト固有の方法で削除することができますが、/tmpに格納されているファイルやディレクトリは、システムを起動するたびに削除することが推奨されます。

FHSは、過去の前例と一般的な慣行に基づいてこの推奨事項を追加したが、システム管理は本標準の範囲外であるため、要件としなかった。

/var/tmp : システム再起動時に保存される一時ファイル

/var/tmpディレクトリは、システム再起動時に保存される一時ファイルやディレクトリを必要とするプログラムで利用できるようになっています。そのため、/var/tmpに保存されているデータは、/tmpに保存されているデータよりも永続的です。

/var/tmpにあるファイルやディレクトリは、システムの起動時に削除してはいけません。/var/tmpに保存されているデータは通常、サイトごとに削除されますが、削除の頻度は/tmpよりも少ない間隔で行うことをお勧めします。

また、オープングループ基本仕様書第7号 環境変数では、以下のように言及されています。

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

11
11
11
2017-03-28 17:56:59 +0000

これは古い質問なので、今日は別のオプションを用意しました。systemd に依存している Linux ディストリビューション(90%)では、特定のタイプの一時ファイルを保存するために $XDG_RUNTIME_DIR ディレクトリ XDG Base Directory Specification ) を使用することができるようになりました。一般的には/run/user/$uidに配置されています。これは、700のパーミッションを持つユーザごとのディレクトリで、より良いセキュリティを提供します。これはtmpfsマウントであり、パフォーマンスを提供します。tmpfsの欠点は、小さなファイルやソケットを保持するためだけに使うべきだということです。

私は/tmp/var/runのマリアージュとして見ています。

10
10
10
2011-09-06 20:13:09 +0000

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

/tmp/ 一時ファイル(/var/tmpも参照)。システム再起動時には保存されないことが多い。

詳細はPDFに記載されています。

2
2
2
2011-09-06 20:23:58 +0000

どの Linux システムでも動作する単一の一時ディレクトリ名を前もって選択することはできません。実際、Windowsでもそれはできません。ウィキペディアの 一時フォルダの記事 によると、Windows の一時ディレクトリは環境変数 TEMP によって決定されます。もし、TEMPを他のものに設定したWindowsシステム上で、単にc:\Tempをテンポラリディレクトリとして使用していたとしたら、XMLファイルを使用してテンポラリディレクトリを選択するプログラムは失敗するでしょう。

要するに、システムのテンポラリディレクトリは、私が知っているすべての最新のオペレーティングシステム(WindowsやUNIX系のシステムを含む)の環境によって決定されます。テンポラリディレクトリに単一の静的なパスを設定しても、デフォルトが変更されていない限りは動作しません。

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

ユーザーのホームディレクトリから相対的なテンポラリディレクトリを選択してみてはいかがでしょうか。

0
0
0
2019-07-27 13:18:41 +0000

最初の疑問は Linuxには標準のテンポラリディレクトリがありますか?あるとしたら、それはどこにありますか?tmp フォルダは以下の場所にあります。ファイルシステム/tmp とファイルシステム/var/tmp /tmp の内容は削除することができます - どのファイル/フォルダが様々なアプリで「必要に応じて」必要なのか/必要でないのかを知っていれば。必須でないファイルは、通常、アプリがダウンロードしたもので、その時点ではアプリ自体を容易にするためのものであり、アプリが実行した後に必要とされるものではありません。var/tmpフォルダには一切触れないようにしてください。

関連する質問

6
10
5
37
3