
LinuxにはWindowsのフォルダのような、一般的な用途の標準的な一時ディレクトリがありますかC:\Temp
?もしあるなら、それはどこにありますか?tmp
プログラムでディレクトリを見つける方法に関するSOの質問ただし、事前に XML 構成ファイルで一時的な場所を設定したいと考えています。
答え1
のファイルシステム階層標準バージョン 3.0 では次のように書かれています:
/tmp : 一時ファイル
一時ファイルを必要とするプログラムがディレクトリ
/tmp
を利用できるようにする必要があります。
/tmp
プログラムは、プログラムの呼び出し間でファイルまたはディレクトリが保持されると想定してはなりません。根拠
IEEE 標準 POSIX.1-2008 には、上記のセクションと同様の要件が記載されています。 に保存されているデータはサイト固有の方法で削除できますが、 にあるファイルとディレクトリはシステムの起動時に必ず削除する
/tmp
ことをお勧めします。/tmp
FHS は、歴史的な前例と一般的な慣行に基づいてこの推奨事項を追加しましたが、システム管理はこの標準の範囲外であるため、これを要件とはしませんでした。
/var/tmp : システムの再起動時に保存される一時ファイル
ディレクトリ
/var/tmp
は、システムの再起動後も保持される一時ファイルまたはディレクトリを必要とするプログラムで使用できます。したがって、 に保存されたデータは/var/tmp
のデータよりも永続的です/tmp
。にあるファイルとディレクトリは、
/var/tmp
システムの起動時に削除しないでください。 に保存されているデータは/var/tmp
通常、サイト固有の方法で削除されますが、 よりも低い間隔で削除を実行することをお勧めします/tmp
。
また、オープン グループ ベース仕様 発行 7、環境変数次のようなことが言及されています。
TMPDIR
この変数は、一時ファイルを作成する場所を必要とするプログラムが使用できるディレクトリのパス名を表します。
システムこれについても発言があります:
/tmp/
そして/var/tmp/
Linuxシステムが一時ファイル用に用意している、誰でも書き込み可能なディレクトリが2つあります。前者は、通常tmpfsそのため、RAM/スワップによってバックアップされ、再起動のたびにフラッシュされます。後者は通常、適切な永続的なファイル システムであるため、物理ストレージによってバックアップされます。これは次のことを意味します。
/tmp/
小さいサイズ制限のあるファイルにのみ使用し、/var/tmp/
それ以外の場合は使用してください。ブートサイクル後も存続するデータは に配置しないでください
/tmp/
。環境変数が設定されている場合は
$TMPDIR
、そのパスを使用し、/tmp/
またはを/var/tmp/
直接使用しないでください。見るファイル階層(7)Linux システムのこれら 2 つのディレクトリ (および他のほとんどのディレクトリ) の詳細については、こちらをご覧ください。
パスは次のように照会できます。システムパス:
$ systemd-path temporary
/tmp
$ systemd-path temporary-large
/var/tmp
答え2
これは古い質問なので、今日では別の選択肢があります。Linuxディストリビューションsystemd
(90%)では、$XDG_RUNTIME_DIR
ディレクトリ(XDG ベースディレクトリ仕様) は、特定の種類の一時ファイルを保存するために使用されます。通常は にあります/run/user/$uid
。
- これはユーザーごとのディレクトリであり
700
、ファイルを非公開にします tmpfs
これは優れたパフォーマンスを備えたマウント(別名RAMドライブ)です- 自動的にクリーンアップされます
の欠点はtmpfs
、小さなファイル (PID ファイル、ロック ファイル、ソケットなど) の保存にのみ使用する必要があることです。
答え3
答え4
最初の質問は、Linux には標準の一時ディレクトリがあるか、ということです。ある場合、それはどこにありますか? tmp フォルダは、File System/tmp および File System/var/tmp にあります。/tmp の内容は、さまざまなアプリで「必要に応じて」必要なファイル/フォルダと不要なファイル/フォルダがわかっている場合は削除できます。不要なファイルは通常、その時点でのみアプリ自体を支援するためにアプリによってダウンロードされるファイルであるため、アプリの実行後はそれ以上必要ありません。/var/tmp フォルダには一切触れないでください。