방금 내 시스템 관리자가 다음에 대한 전역 별칭을 만들었다는 것을 깨달았습니다 which
.
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
맨페이지에는 which
간단히 다음과 같이 나와 있습니다.
tty가 아닌 경우 오른쪽 옵션 처리를 중지합니다.
무슨 뜻이에요?
답변1
설정:
$ /usr/bin/which --show-dot a
./a
$ /usr/bin/which --show-tilde a
~/a
.
대화형으로 실행할 때는 버전을 원 하지만 ~
리디렉션할 때는 버전이 필요한 경우 다음을 별칭으로 사용할 수 있습니다.
/usr/bin/which --show-tilde --tty-only --show-dot
데모:
# interactive / on a tty
$ /usr/bin/which --show-tilde --tty-only --show-dot a
./a
# not interactive / redirected to a file
$ /usr/bin/which --show-tilde --tty-only --show-dot a > output
$ cat output
~/a
--tty-only
나중에 지정하는 모든 옵션은 출력이 tty인 경우에만 고려됩니다.
답변2
이는 출력이 다음과 같다는 것을 의미합니다 which
.아니요터미널을 참조하여 실행아니요프로세스 --read-alias
및 .--show-dot
--show-tilde
일반적으로 파이프, 일반 파일 등
which watch | foo # not a tty
which watch > foo # not a tty
which watch # tty
which watch >&2 # tty
이러한 옵션은 예를 들어 인식되지 않습니다.데비안: