新しいアプリケーション
通常、XDG Base Directory Specification に従います ~/.config/yourapp/*
INF、JSON、YML、またはボートに浮かぶあらゆる形式、およびあらゆるファイルにすることができます... yourapp
実行可能ファイルの名前と一致するか、~/.config/yourorg/yourapp/*
までの組織/会社/ユーザー名/ハンドルで名前空間を指定する必要があります
古いアプリケーション
ユーザーごとの構成、通常はホーム ディレクトリで...
~/.yourapp
単一ファイルのファイル~/.yourapp/
複数のファイル + 通常は ~/.yourapp/config にあるデータ
グローバル設定は通常 /etc/appname
にあります ファイルまたは /etc/appname/
ディレクトリ。
グローバル アプリ データ:/var/lib/yourapp/
キャッシュデータ:/var/cache/
ログデータ:/var/log/yourapp/
tutorialhelpdesk.com からの追加情報
Linux/その他の Unix 系システムのディレクトリ構造とディレクトリの詳細。
Windows では、ほとんどすべてのプログラムがファイル (すべてのファイル) を「Program Files」という名前のディレクトリにインストールします。Linux ではそうではありません。ディレクトリ システムは、インストールされたすべてのファイルを分類します。すべての構成ファイルは /etc
にあります 、すべてのバイナリ ファイルは /bin
にあります または /usr/bin
または /usr/local/bin
.ディレクトリ構造全体とその内容は次のとおりです:
/
- ファイル システムのベースとなるルート ディレクトリ。すべてのファイルとディレクトリは、物理的な場所に関係なく、論理的にルート ディレクトリ内に含まれます。
/bin
- Linux オペレーティング システムの一部である実行可能プログラムが含まれています。 cat、cp、ls、more、tar などの多くの Linux コマンドは、/bin
にあります。
/boot
- Linux カーネルと、LILO および GRUB ブート マネージャーに必要なその他のファイルが含まれています。
/dev
- すべてのデバイス ファイルが含まれます。 Linux は、各デバイスを特別なファイルとして扱います。そのようなファイルはすべて /dev
にあります .
/etc
- ほとんどのシステム構成ファイルと初期化スクリプトが /etc/rc.d
に含まれています
/home
- ホーム ディレクトリは、ユーザーのホーム ディレクトリの親です。
/lib
- システムの起動に必要なロード可能なドライバー モジュールを含むライブラリ ファイルが含まれています。
/lost+found
- 失われたファイルのディレクトリ。すべてのディスク パーティションには、lost+found ディレクトリがあります。
/media
- CD-ROM ドライブ、フロッピー ディスク、Zip ドライブなどのリムーバブル メディアにファイル システムをマウントするためのディレクトリ。
/mnt
- 一時的にマウントされたファイルシステムのディレクトリ。
/opt
- オプションのソフトウェア パッケージは、ここにファイルをコピー/インストールします。
/proc
- 仮想ファイルシステム内の特別なディレクトリ。 Linux システムのさまざまな側面に関する情報が含まれています。
/root
- root ユーザーのホーム ディレクトリ。
/sbin
- 管理バイナリ ファイルが含まれます。 mount、shutdown、umount などのコマンドはここにあります。
/srv
- システムが提供するサービス (HTTP、FTP など) のデータが含まれます。
/sys
- Linux カーネルから見た、デバイスに関する情報を含む特別なディレクトリ。
/tmp
- スクラッチ ディレクトリ (一時ファイルのストレージ) として使用できる一時ディレクトリ。このディレクトリの内容は、システムが起動するたびにクリアされます。
/usr
- X Window System などの多くのプログラムのサブディレクトリが含まれています。
/usr/bin
- 多くの Linux コマンドの実行可能ファイルが含まれています。コア Linux オペレーティング システムの一部ではありません。
/usr/include
- C および C++ プログラミング言語のヘッダー ファイルが含まれています
/usr/lib
- C および C++ プログラミング言語のライブラリが含まれています。
/usr/local
- ローカル ファイルが含まれます。 /usr と同様のディレクトリがあります。
/usr/sbin
- 管理コマンドが含まれています。
/usr/share
- デフォルトの構成ファイル、画像、ドキュメントなど、共有されるファイルが含まれます。
/usr/src
- Linux カーネルのソース コードが含まれています。
/var
- ログ、メール ディレクトリ、印刷スプールなど、時間の経過とともに数とサイズが変化する傾向があるさまざまなシステム ファイルが含まれます。
/var/cache
- アプリケーションのキャッシュ データのストレージ領域。
/var/lib
- アプリケーションの現在の状態に関する情報が含まれています。プログラムは実行時にこれを変更します。
/var/lock
- リソースが 1 つのアプリケーションのみで使用できるように、アプリケーションによってチェックされるロック ファイルが含まれます。
/var/log
- さまざまなアプリケーションのログ ファイルが含まれています。
/var/mail
- ユーザーのメールが含まれます。
/var/opt
- /opt ディレクトリに保存されているパッケージの変数データが含まれています。
/var/run
- ブート以降のシステムを説明するデータが含まれています。
/var/spool
- 何らかの処理を待っているデータが含まれています。
/var/tmp
- システムの再起動間で保持される一時ファイルが含まれます。
アプリケーションは XDG Base Directory Specification に準拠する必要があります .ここでのほとんどの回答は、時代遅れか間違っています。
アプリケーションは、次の環境変数が指すディレクトリとの間で、データと構成ファイルを保存およびロードする必要があります:
$XDG_DATA_HOME
(デフォルト:"$HOME/.local/share"
):ユーザー固有のデータ ファイル。$XDG_CONFIG_HOME
(デフォルト:"$HOME/.config"
):ユーザー固有の構成ファイル。$XDG_DATA_DIRS
(デフォルト:"/usr/local/share/:/usr/share/"
):優先順位が付けられたシステム データ ディレクトリのセット。$XDG_CONFIG_DIRS
(デフォルト:"/etc/xdg"
):優先順位が付けられたシステム構成ディレクトリのセット。$XDG_CACHE_HOME
(デフォルト:"$HOME/.cache"
):ユーザー固有の重要でないデータ ファイル。
まず、問題のファイルが次のものであるかどうかを判断する必要があります:
<オール>$XDG_CONFIG_HOME:$XDG_CONFIG_DIRS
);$XDG_DATA_HOME:$XDG_DATA_DIRS
);または$XDG_CACHE_HOME
).
アプリケーションのファイルを上記のディレクトリのサブディレクトリに配置することをお勧めします。通常、$XDG_DATA_DIRS/<application>/filename
のようなもの または $XDG_DATA_DIRS/<vendor>/<application>/filename
.
ロードするときは、まずユーザー固有のディレクトリ ($XDG_*_HOME
) からファイルをロードしようとします。 )、失敗した場合はシステム ディレクトリ ($XDG_*_DIRS
) から )。保存するときは、ユーザー固有のディレクトリにのみ保存します (ユーザーはおそらくシステム ディレクトリへの書き込みアクセス権を持っていないため)。
その他のユーザー指向のディレクトリについては、XDG ユーザー ディレクトリの仕様を参照してください。 .デスクトップ、ダウンロード、ドキュメント、ビデオなどのディレクトリを定義します。
<オール>
一般的に言えば、コマンド ライン オプションは、システムのデフォルトを上書きするユーザーのデフォルトを上書きする環境変数を上書きします。