ファイル拡張子やハードリンクなどのLS_COLORS混合一致条件

ファイル拡張子やハードリンクなどのLS_COLORS混合一致条件

拡張型の特徴的な色を維持しながら、ファイルls --color=autoがハードリンクのときに下線を引く方法があるかどうか疑問に思います。

たとえば、私がそうした場合

 LS_COLORS="*.tgz=01;31:mh=04" ls --color=auto foo.tgz 

ファイルは太い赤で表示されますが、そうすると次のようになります。

ln foo.tgz bar.tgz
LS_COLORS="*.tgz=01;31:mh=04" ls --color=auto foo.tgz

これでファイルが白く、下線が引かれているようです。私はそれを太い赤と下線で見たいのですが、もちろん他の拡張と一緒に使用したいです。

ベストアンサー1

みんな修正コマンドを使用すると、ハードリンクされたファイルを太字の赤色で表示できます。

LS_COLORS="*.tgz=01;31:mh=04" ls --color=auto foo.tgz

到着

LS_COLORS="*.tgz=01;31:mh=04;01;31" ls --color=auto foo.tgz

mh=変数部分はLS_COLORSハードリンクファイルを参照します。内側にテーブルもあります。lsソースコードドキュメントに見つかりません:

enum indicator_no
  {
    C_LEFT, C_RIGHT, C_END, C_RESET, C_NORM, C_FILE, C_DIR, C_LINK,
    C_FIFO, C_SOCK,
    C_BLK, C_CHR, C_MISSING, C_ORPHAN, C_EXEC, C_DOOR, C_SETUID, C_SETGID,
    C_STICKY, C_OTHER_WRITABLE, C_STICKY_OTHER_WRITABLE, C_CAP, C_MULTIHARDLINK,
    C_CLR_TO_EOL
  };

static const char *const indicator_name[]=
  {
    "lc", "rc", "ec", "rs", "no", "fi", "di", "ln", "pi", "so",
    "bd", "cd", "mi", "or", "ex", "do", "su", "sg", "st",
    "ow", "tw", "ca", "mh", "cl", NULL
  };

04下線付きのSGRコード(選択されたグラフィック表現)。そして01うん31勇敢なそして、それぞれ。セクションの変数にこれを追加するmh他のファイルと同様に、ハードリンクファイルの色を指定できます(または別の番号を選択した場合は異なる)。

ただし、GNUはls各ファイルに色を付けるために1つのスキームのみを選択します。コロン:分離方式。ハードリンク(シンボリックリンクやディレクトリを含む)などの特別なカテゴリを確認した後、プログラムはただtgzこれらのカテゴリのいずれも適用されない場合などのサフィックスを見つけます。存在するソースコードつまりコメントです。

  /* Check the file's suffix only if still classified as C_FILE.  */

プランを選択すると、そのプランを実行し、組み合わせを試みない

おすすめ記事