`ls`ファイルリストの隠しファイルを色分けする方法は?


10

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

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


この答えには、あなたが知りたいと思っていた以上のものがありますLS_COLORS。dotfilesで動作させる方法を理解できませんでしたが、チェックしてみてください。
terdon

1
@terdon-ドットファイルでは機能しません。一部の人にとってはそうかもしれませんが、ごくわずかです。エクステンションの長さに制限があり、ほとんどのファイル名全体がそれを超えます。*.hideたとえば、次の名前のファイルに対して機能します。この回答はディレクトリの同様の問題に対処していますが、これに対する回答とディレクトリの問題はおそらく同じではありません。
mikeserv 2014

回答:


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つは残りの部分用です。


0

はい、使用しますcf。私はよく文書化されたバージョンをリリースしました。ファイル拡張子ごとにls出力に色を付けたり、特定の特別な属性(実行可能ファイル、リンク、非表示、ディレクトリ)を特定したりします。試してみます!!!慣れてしまえばこれを手放すのは難しい。

https://github.com/AdamDanischewski/cf


-1

非表示のファイル(およびフォルダー)を強調表示するだけで、他のすべてのファイルの色分けを気にしない場合は、次のコマンドを実行するのが明らかな方法です。 ls -la | grep -E "^| \.[^/|'.].*"

他の色を維持したい場合、$LS_COLORSはネイティブの隠しファイルの色付けをサポートしていないように見えるため、状況が複雑になります。

現在のディレクトリの隠しファイルを$LS_COLORS疑似拡張として環境変数に動的に追加し、ls -la実行してdircolorsから、元のカラースキーマをリセットするというアイデアを思いつきました。隠しファイルが既知の拡張子と同じ名前である場合、明らかに競合が発生します。また、この方法は隠しフォルダーでは機能しません。

警告:このソリューションは(十分にテストされていません)ハックです。自己責任で使用してください。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.