![내 별칭이 어떤 명령을 실행하고 있나요? [복사]](https://linux55.com/image/151300/%EB%82%B4%20%EB%B3%84%EC%B9%AD%EC%9D%B4%20%EC%96%B4%EB%96%A4%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B3%A0%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
존재하다이것질문은 실행 파일이 어디에 있는지 알아내려면 를 실행해야 한다고 반복적으로 제안합니다 command -v file
.
command -v ls
나는 이것을 몇 가지 다른 시스템에서 실행 해 보았지만 계속해서 (항상 Bash alias ls='ls --color=auto'
에서) 발생합니다.
세 가지 질문이 있습니다.
내가 무엇을 놓치고 있나요? 어떻게
command -v ls
도움이 되나요?which
(링크된 질문에 대한 의견과 답변에 따라) 작동하지 않고 질문 1에서 아무것도 누락되지 않고 도움이 된다고 가정하면 어느 것이 실제로 작동하는지command -v ls
어떻게 알 수 있습니까 ?ls
이 문제를 해결하는 POSIX 호환 방법은 무엇입니까? 내 예는 Bash에 있지만 휴대용 솔루션을 원합니다. 나는 에 대해 알고 있습니다
type -P
.
답변1
나는 세 가지 질문 모두에 대한 답을 찾았다고 믿습니다. 한 번 보면 뻔한데 내겐 뻔하지 않아별말씀을요, 따라서 질문입니다.
- 별칭 삭제
- 달리기
command -v
. (바라보다POSIX여기). - 그것이 사람의 바람이라면 현실적이다.
어떻게 해야 할지 모르시는 분들을 위해 아래에 이 프로세스를 적용한 구체적인 예를 보여드리겠습니다 ls
.
$ command -v ls
alias ls='ls --color=auto'
$ unalias ls # Step 1 above
$ command -v ls # Step 2 above
/bin/ls
$ alias ls='ls --color=auto' # Step 3 above
$ command -v ls
alias ls='ls --color=auto'