Bashランタイムファイルを任意のディレクトリに再配置する

Bashランタイムファイルを任意のディレクトリに再配置する

bashランタイムファイル(~/.bash_historyなど~/.bashrc)を定義されたディレクトリ(たとえばなど)に~/.config/bash再配置する方法は~/.cache/bashhistory

答え1

カスタムファイルへのシンボリックリンクを作成できると思います。

ln -s ~/.config/bash ~/.bashrc
ln -s ~/.cache/bashhistory ~/.bash_history

または

履歴ファイルの場合は、シェル変数を設定できます

HISTFILE=~/.cache/bashhistory

または、次のように bash を起動できます。

bash --rcfile ~/.config/bash

答え2

Bashに特定のディレクトリの構成ファイルを使用させる単一の構成オプションはありません。以下を使用して、--rcfileBashに特定の値を割り当てることができます。.bashrcman bash

   --rcfile file
          Execute commands from file instead of the standard
          personal initialization file ~/.bashrc if the shell is
          interactive (see INVOCATION below).

たとえば、

bash --rcfile ~/.config/bash

HISTFILEシェル変数は~/.cache/bashhistory次のように設定できます~/.config/bash

HISTFILE=~/.cache/bashhistory

他の設定ファイルがある場合は、いつでも〜/ .configで指定されたファイルへのシンボリックリンクを作成して、代わりに〜/ .config / profileを編集できます~/.profile

ln -s ~/.profile ~/.config/profile

最後の手段として、名前が変更されていないすべての設定ファイルを設定して〜/ .configに入れ、次のようにbashを起動することもでき$HOMEます~/.config

$ echo HOME_CHANGED=1 >> ~/.config/.bashrc
$ HOME=~/.config bash
$ echo $HOME_CHANGED
1

(参考$としてコマンドラインプロンプト コマンドの一部ではなく、新しい行の開始を示すために使用されます。

答え3

接続を無効にするには、ソースからbashを再構築して、shell.cの~/.bashrc~/.bash_profileにデフォルトパスをパッチする必要があります。

主な欠点:bashの更新に応じて、このプロセスを定期的に繰り返す必要があります。

関連情報