참조된 위치에 따른 색상 좌표 심볼릭 링크/소프트 링크

참조된 위치에 따른 색상 좌표 심볼릭 링크/소프트 링크

링크 위치 또는 "속해 있는" 사람을 기준으로 심볼릭 링크/소프트 링크의 색상을 조정할 수 있는 방법이 있습니까(출력 색상 지정과 유사 ls)?

/usr/local/bin이것이 깔끔하다고 생각하는 이유를 예 를 들어 설명하자면, 직장 서버에 계정이 있고 홈 디렉토리에 소프트웨어를 설치할 수 있으며 현재 경로의 디렉토리에 소프트 링크할 수 있습니다. 나는 sudoer가 아니기 때문에. 따라서 연결한 프로그램이 결국 중앙에 설치된 프로그램과 동일한 핸들을 PATH에 갖게 되는 상황을 상상할 수 있습니다.

이 가상의 예가 제가 의미하는 바를 보여주기를 바랍니다. PATH 에 존재하도록 설정한 디렉토리에 연결된 일부 설치된 프로그램이 있다고 가정해 보겠습니다 ~/newprogram/.~/Apps/

새 프로그램을 호출하고 자동 완성을 사용하려면 관리자가 동일한 심볼릭 링크 이름을 사용하는 응용 프로그램을 설치했을 수 있습니다(가능한지 확인하지 않았습니다). Tab 키를 사용하여 프로그램 이름의 하위 문자열을 자동 완성하면 다양한 옵션이 모두 표시됩니다. 예를 들어 다음과 같습니다.

user@server:~$ newprog          #double tab:
newprog       newprogram       newprogram

따라서 일치하는 항목이 여러 개 있으며 그 중 2개는 링크되었거나 직접적으로 경로에 정확히 동일한 바로가기/프로그램 이름이 있습니다. 하나는 "내 것"이고 다른 하나는 에서 왔다고 가정합니다 /usr/local/bin.

참조된 새 프로그램이 표시되도록 "newprogram"이 나타날 때마다 색상을 지정하는 것이 가능합니까?내 거한 번 나타나는 심볼릭 링크는 한 가지 색상이고 다른 "newprogram" 발생은 색상이 지정되어 경로의 다른 디렉터리(예 /usr/local/bin/: )에 존재함을 나타냅니다.

편집하다:

죄송합니다. 예, 언급하는 것을 잊어버렸습니다. 이는 해당 특정 서버의 Ubuntu에 있을 것입니다.

편집 2:

대부분의 색상은 .bashrc내가 보고 있는 것에 따라 이루어지지만 /usr/bin/dircolors이는 내가 실행하는 명령(등)의 출력에만 영향을 미치며 ls자동 완성의 동작에는 영향을 미치지 않습니다.

이것이 제가 현재 .bashrc에 가지고 있는 것인데, "show us your bashrc" 유형의 스레드에서 뻔뻔하게도 도난당했다는 것을 인정합니다.

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\$
    else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls -h --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

편집 3:

심볼릭 링크 동작 변경의 예: 여기에 이미지 설명을 입력하세요.

raxml과 prunier는 이전에 파란색이었던 심볼릭 링크입니다.

그러나 위의 자동 완성 출력은 모든 심볼릭 링크에 대해 색상이 지정되지 않은 상태로 유지됩니다(예: tf).

답변1

GNU를 ls사용하면 파일 유형이나 모드(주어진 유형에 색상이 지정되지 않은 경우)별로 파일 색상을 선택할 수 있습니다. 이는 dircolors유형, 패턴 및 색상에 대한 데이터베이스가 내장된 프로그램에 의해 수행됩니다. ls디렉토리 경로 자체는 신경 쓰지 않습니다. 측면"그들이 가리킨 곳"이 프로그램을 사용하는 것은 쉽지 않습니다. 심볼릭 링크는 일반 파일에 비해 쉽습니다.

다음을 사용하여 데이터베이스를 파일로 인쇄하면 가장 쉽게 데이터베이스를 수정할 수 있습니다.

dircolors -p >myfile

시스템에 따라 쉘이 시작될 때 이를 찾을 수 있습니다 /etc/DIRCOLORS. 편집 후 dircolors할당을 사용하십시오 LS_COLORS.

eval 'dircolors myfile'

구성 dir_colors매뉴얼에서는 데이터베이스에 대해 설명하고 변경할 수 있는 기능을 언급합니다.

LINK 색상 순서
심볼릭 링크에 사용되는 색상을 지정합니다.

또는 인쇄된(기본) 데이터베이스

LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
 # numerical value, the color is as for the file pointed to.)

이 예는 다음을 결합합니다.용감한그리고파란색. 이 행을 수정하여 다양한 색상 조합을 사용할 수 있습니다. (BTW, dir_colors매뉴얼 페이지에는 "밝음"이 언급되어 있습니다. ISO 6429는 다음과 같이 말합니다.용감한).

bash자동 완성 에는 사용되지 않으며 ls, ls색상 지정은 와 동일합니다 bash. 단, 이에 상응하는 기능이 추가되었습니다.2014년bash동일한 변수를 사용하여 LS_COLORS표시할 수 있는 색상을 알려줍니다. 이것은 bash 4.3의 기능입니다.배쉬 매뉴얼:

colored-stats
"on"으로 설정하면 Readline은 파일 유형을 나타내기 위해 다양한 색상을 사용하여 가능한 완성을 표시합니다. 색상 정의는 값에서 가져옵니다.LS_COLORS환경 변수. 기본값은 "끄기"입니다.

사용하려면 추가하세요.

set colored-stats on

귀하의 파일에 .inputrc.

추가 자료:

관련 정보