2017-04-01 6 views
0

私は、特定のディレクトリにのみ影響を与える色をグローバルに設定する必要はありません。Linuxで特定のディレクトリの色のみを変更できる方法はありますか?

+3

ディレクトリには「カラー」の概念がありません。そして、bashは、 'ls'が何に割り当てた色について何も知りません。これは、完全に独立した実行可能ファイルであり、bashの一部ではない' ls'コマンドの100%のビジネスです。 –

+1

ここで 'ls'の出力をフィルタリングして特定のディレクトリの色を変更したいと思ったら、おそらくこれを行うことができますが、' ls'を実行するたびに元の 'ls'コマンドだけでなく、後に実行され、その出力を変更するフィルタです。 –

+2

これが特にGNU 'ls'であれば、ファイル名全体を' dircolors'データベースの拡張子にすることができます。 https://www.gnu.org/software/coreutils/manual/html_node/dircolors-invocation.html –

答えて

1

色をサポートする端末でBashを使用していて、このディレクトリ内でテキスト出力のデフォルトの色を端末(特にlsの出力ではない)に変更したい場合は、 。

PROMPT_COMMAND変数は、プロンプトを印刷する直前にコマンドを実行するように設定できます。現在のディレクトリを確認し、(たとえば、PS1変数に、色の選択や特殊コードのエコー表示のための表示不可能な特別なコードを含むプロンプトを割り当てることによって)現在のディレクトリを確認して端末の色を変更することができます。

PROMPT_COMMANDはBashのマニュアルに記載されていますhttps://www.gnu.org/software/bash/manual/bashref.html色を割り当てる方法については

興味があれば、あなたはそれを調べる必要があります。

この解決策は、あなたが探しているものではないかもしれないし、副作用があり、一般的に言えば、現在のディレクトリに応じてターミナルの色を変えることが有用であるとは確信できません。通常の解決策は、現在のディレクトリ(または少なくともパスの最後の部分)のパスを示すプロンプトを表示することです。

私はBashを実行しているマシンに応じてテキストの色を変えるために上記と似たようなものを使用しています。sshを複数の端末ウィンドウに重ねて使用し、任意のウィンドウがどのマシンに接続されているかを覚えておく良い方法です。

関連する問題