標準として指定されたユーザープロファイルの場所はありますか?

標準として指定されたユーザープロファイルの場所はありますか?

私は~/.fooあなたのホームディレクトリにあるファイルについて話しています。私はこのようなファイルを読み取るプログラムを開発しており、可能であればユーザーのルートも整理したいと思います。

~/$(conf)次の設定がどこにあるかなどのPOSIX指定変数はありますか?.emacs

答え1

POSIX

「ユーザー構成」または「プロファイル」という文字列の仕様を検索すると、結果がないのでいいえと言いたいと思います。いかなる方法でもこれを指定しません。

FHS

見ているFHS - ファイルシステム階層標準この内容は次のとおりです。

アプリケーションのユーザー固有の構成ファイルは、ユーザーのホームディレクトリに「.」で始まるファイルに保存されます。文字(「ドットファイル」)。アプリケーションが複数のドットファイルを生成する必要がある場合は、そのファイルを「.」で始まるサブディレクトリに配置する必要があります。文字(「ドットディレクトリ」)。この場合、構成ファイルは「.」で始まってはいけません。特徴。11

システム構成/構成のインポート

POSIX構成定数のリストを見ることは、<limits.h>このような構成のために私が考えることができる唯一の場所です。コマンドを実行すると、getconf <var>このタイプの結果が返されます。

たとえば、

$ getconf _POSIX_CHILD_MAX
1024

ただし、定義のリストを見ると、ユーザーのホームディレクトリに関連するものは何も表示されません。

答え2

約 10 年前に定義され、最近採用されたこの標準は、他の場所を使用してユーザー構成、キャッシュおよびデータを~/.config/保存する標準方法です。~/.cache/~/.local/share/

これは次のように定義されます。環境$XDG_CONFIG_HOME$XDG_CACHE_HOMEなどの$XDG_DATA_HOME変数ほとんどの環境ではまだ事前定義されていることはほとんどありませんが、存在するかどうかをテストし、まだプリセットされていない場合は公式のデフォルト値を直接設定してから、これらの特定の変数を自分の変数に次のように使用することをお勧めします。構成場所。この方法では、潜在的なユーザー、開発者、またはソースコードの研究者に、構成、キャッシュ、およびデータにこれらの標準的な場所を使用していることを伝えます。そうしないと、プログラミング言語によっては検索が機能する場合があります~/.config/$HOME/.config/と検索メカニズム)。

if [ "x$XDG_CONFIG_HOME" = "x" ] ; then
    XDG_CONFIG_HOME="$HOME/.config"
fi
CONFIG_FILE="$XDG_CONFIG_HOME/myprog/myprog.conf"

たとえば、ビルドシステムでGolangを使用していて、ダウンロードしたGoパッケージをビルド固有のディレクトリにあるビルドシステムにキャッシュしたいとします。次のシェルスクリプトを使用してすべてを設定できます。

if [ "x$XDG_CACHE_HOME" = "x" ] ; then
    XDG_CACHE_HOME="$HOME/.cache"
fi
GO_MOD_CACHE_DIR="$XDG_CACHE_HOME/myprog/go-mod-cache"
mkdir -p "$GO_MOD_CACHE_DIR"
if [ -w "$GO_MOD_CACHE_DIR/" ] ; then
    export GOMODCACHE="$GO_MOD_CACHE_DIR"
else
    printf "WARN: GOMODCACHE directory not writeable: %s\n" "$GO_MOD_CACHE_DIR"
fi

引用:

関連情報