$ HOMEに複数のディレクトリを持つことはできますか?

$ HOMEに複数のディレクトリを持つことはできますか?

次のようなことができるかと思います。

export HOME=$HOME:$HOME/.configs

これにより、 ~/.configs ですべてのカスタム構成を維持できます。

設定できることはわかっていますが、後で問題が発生するかどうかはわかりません。これは安全ですか?もっと標準的な方法がありますか?

答え1

まず、可能でまれな場合、専門家はそうする必要があるかもしれませんが、環境変数の値を変更しないでください。システムHOMEによって設定されます。

第二に、 の内容はHOME1 つの (既存の) ディレクトリ、つまりホームディレクトリにのみなければなりません。

何を見るかPOSIX とについてHOME

HOME:システムは、ユーザーのホームディレクトリのパス名にログインするときにこの変数を初期化する必要があります。

答え2

ディレクトリ$HOME/.configXDG仕様の値によって決まります$XDG_CONFIG_HOME

理論的には、設定ファイルを別の場所に保存したい場合は、$XDG_CONFIG_HOME必要な場所に設定するだけです。

ただし、実際には$HOME/.config/...XDG仕様に従わずに盲目的に作成されたソフトウェアインスタンスを見つける可能性が高いです。特に展開に必要な部分ではないので、さらにそうです。

XDG準拠のアプリケーションでは、デフォルト値を取得する必要がある他の場所を定義する一連のディレクトリ(コロンで区切られたなど$XDG_CONFIG_DIRS)を持つこともできます。$PATHこの値のデフォルト値はでなければなりません/etc/xdg

今、あなたが尋ねなければならない次の質問は「良い、それではこれをどこで設定する必要がありますか$XDG_CONFIG_HOME?」です。かなり複雑になります

全体として.profile(または.bash_profile.bashrc)に入れることもできますが、PAMを介してグローバルに設定する必要があるかもしれません。個人的に私はまだこれを試していません。これは、.profileGUIベースのログイン環境がソリューションベースのソリューションとどのように機能するのかわからないためです。

2番目の質問は、「自分の設定をこの新しい場所に移動するにはどうすればよいですか?」です。潜在的な問題がいっぱい。ため息をつく。

ここで最も簡単なオプションは、おそらく目的の$HOME/.config場所へのシンボリックリンクを使用することです。これにより、設定の問題だけでなく、$XDG_CONFIG_DIRすぐ下に表示されているアプリを引き続き使用することに関連する問題も処理されます$HOME/.config

cd
test -d .config && mv .config .config_old
ln -s /path/to/preferred_config_dir .config

関連情報