「ls」ファイルのリストから隠しファイルの色を指定するには?

「ls」ファイルのリストから隠しファイルの色を指定するには?

LS_COLORSls環境変数を使用すると、ディレクトリ、汎用ファイル、リンクなど、さまざまなファイル形式のGNU coreutilコマンドの色を決定できます。ドットファイルはタイプ自体ではなくLinuxファイルタイプのバリエーションと見なされるため、表示色を指定するオプションはありません。

lsリストに隠されたファイルを異なる色で表示する別の方法はありますか?

答え1

名前で並べ替える場合は、次のことが役に立ちます。

alias ll='LS_COLORS=$LS_COLORS:"di=0;34:" ; S_COLORS=$LS_COLORS:"fi=0;37:" ; export LS_COLORS; ls -dHhl --color=auto .*; LS_COLORS=$LS_COLORS:"di=1;94:" ; LS_COLORS=$LS_COLORS:"fi=1;37:" ; export LS_COLORS$

ただし、lsコマンドは2つの部分に分割されます。 1つはファイルとフォルダを隠すことであり、もう1つは残りの部分です。

答え2

はい、を使用してくださいcf。各ファイル拡張子および/またはいくつかの特殊属性(実行可能ファイル、リンク、非表示、およびディレクトリ)のls出力の色を指定する、よく文書化されたバージョンをリリースしました。試してみてください! ! !一度慣れたら使用を中止するのは難しいです。

https://github.com/AdamDanischewski/cf

答え3

隠しファイル(およびフォルダ)のみを強調表示し、他のすべてのファイルの色は気にしない場合は、確実な方法は次のように実行することです。ls -la | grep -E "^| \.[^/|'.].*"

$LS_COLORS目に見えるように隠されたファイルの色付けはデフォルトでサポートされていないため、他の色を維持したい場合は状況が難しくなり始めます。

$LS_COLORS現在のディレクトリの隠しファイルを環境変数に仮想拡張子として動的に追加した後ls -ladircolors明らかに隠しファイルの名前が既知の拡張子と同じ場合、競合が発生します。また、この方法は隠しフォルダでは機能しません。

警告:このソリューションは(完全にテストされていない)ハッカーソリューションです。自分の責任で使用してください。

for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)

関連情報