他のファイルサフィックスの色をLS_COLORS
カスタマイズするのに役立つ必要はありません。私がやりたいことは特別な色を構成することです特定のディレクトリ、接尾辞に基づいています。
dir1/
(たとえば、標準ディレクトリの色で表示したいが名前dir2.special-suffix/
で終わるディレクトリに設定した別の色で表示したいと思います.special-suffix
。)
*.«suffix»
私は成功せずにこれを行うために標準的な方法(ファイル操作)を試しました。すべてのディレクトリは指定された色で表示され、di
以降のすべての*.«suffix»
ルールは無視されます。
可能ですか?
答え1
おそらくそうではありません。しかし、これは開発者を驚かせるかもしれません。レビューから抜粋した内容ですGNUのls.c:
# /* Extensions only apply to regular files, apparently. */
これはリンクですいっぱいls.cビューには良くないかもしれませんが、そこで同じソースコードを見つけることができます。
でもできるディレクトリモードおよび/またはリンク状態に応じて、ディレクトリの色のバリエーションを取得します。もちろん、そのようなことはジャーナリストの利益のために記事の内容を変えるのと同じですが、私は哲学者ではありません。したがって、次のアプローチをとることができます。
mkdir t_not_other_writable
mkdir x_not_other_writable
chmod o+t t_not_other_writable
LS_COLORS='lc=:rc=:rs=:di=FG=BLD;CLR=BLUE :st=FG=REV;CLR=BLUE :' \
/usr/bin/ls --color=always -nFl
出力
drwxr-xr-x 1 1000 1000 0 Aug 7 14:37 FG=BLD;CLR=BLUE x_not_other_writable/
drwxr-xr-t 1 1000 1000 0 Aug 7 14:36 FG=REV;CLR=BLUE t_not_other_writable/
このようなことは、とんでもない危険なアイデアではないことを確認するために、Googleに固定ビットの機能を再確認しました。
固定ビットは、ファイル/ディレクトリの所有者またはrootユーザーのみがファイルを削除または名前変更できるようにするファイルまたはディレクトリに設定されている許可ビットです。他のユーザーには、他のユーザーが作成したファイルを削除する権限は付与されません。
したがって、私たちがあなたのディレクトリについて話していて、最初から他の人がそのディレクトリを削除することを意図していない場合は、おそらく何の害もありません。
PSそこの定義が気になったら、$LS_COLORS
私はかなりうまく扱いました。(私は希望) ここ。また、以下のソースからいくつかの追加の説明を貼り付けました。dircolors -p
結果が提供する内容とよく合うことを願っています。(まだ定義が必要な方のため):
# /* lc: Left of color sequence */
# /* rc: Right of color sequence */
# /* ec: End color (replaces lc+no+rc) */
# /* rs: Reset to ordinary colors */
# /* no: Normal */
# /* fi: File: default */
# /* di: Directory: bright blue */
# /* ln: Symlink: bright cyan */
# /* pi: Pipe: yellow/brown */
# /* so: Socket: bright magenta */
# /* bd: Block device: bright yellow */
# /* cd: Char device: bright yellow */
# /* mi: Missing file: undefined */
# /* or: Orphaned symlink: undefined */
# /* ex: Executable: bright green */
# /* do: Door: bright magenta */
# /* su: setuid: white on red */
# /* sg: setgid: black on yellow */
# /* st: sticky: black on blue */
# /* ow: other-writable: blue on green */
# /* tw: ow w/ sticky: black on green */
# /* ca: black on red */
# /* mh: disabled by default */
# /* cl: clear to end of line */