다른 파일 접미사에 대한 색상을 사용자 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에 고정 비트의 기능을 다시 확인했습니다.
고정 비트는 파일/디렉터리의 소유자 또는 루트 사용자만 파일을 삭제하거나 이름을 바꿀 수 있도록 허용하는 파일 또는 디렉터리에 설정된 권한 비트입니다. 다른 사용자에게는 다른 사용자가 만든 파일을 삭제할 수 있는 권한이 부여되지 않습니다.
따라서 우리가 귀하의 디렉토리에 대해 이야기하고 있고 처음부터 다른 사람이 해당 디렉토리를 삭제하도록 허용할 의도가 없다면 아마도 아무런 해를 끼치지 않을 것입니다.
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 */