기존 명령에 이름이 "겹치는" 별칭을 만드는 방법은 무엇입니까?

기존 명령에 이름이 "겹치는" 별칭을 만드는 방법은 무엇입니까?

ss명령에 대한 별칭을 만들고 싶다고 가정해 보겠습니다 sudo -s. 하지만 은(는) 이미 존재하는 명령이므로 해당 명령에 대해 ss호출되는 또 다른 별칭을 만들고 싶습니다 .sstss

일반 명령 이름만 사용하는 경우 별칭이 다음과 같기 때문에 이는 불가능합니다.

  1. 순서를 존중하는 방식으로 설정되지 않았으며,
  2. 명령만 참조하는 대신 다른 별칭을 참조하세요.

따라서 다음을 시도하면:

alias sst='ss'
alias ss='sudo -s'

명령을 실행하면 sstrunning 이 발생하는데 sudo -s이는 내 의도가 아닙니다.

어떻게 할 수 있습니까?

답변1

위의 작업을 수행하려면 실행하려는 명령의 절대 경로를 참조해야 합니다.

다음을 사용하여 수행할 수 있습니다.

alias sst='/usr/bin/ss'
alias ss='sudo -s

그러나 항상 ss해당 위치에 있는지 확신할 수는 없으므로 보다 확실한 접근 방식은 다음과 같습니다.

alias sst='$(which ss)'
alias ss='sudo -s

이제 위의 내용이 예상대로 작동합니다. 여기서 명령을 ss실행 sudo -s하고 실행합니다 .sstss

관련 정보