Bash에서 "cd .." 사용을 방지하시겠습니까?

Bash에서 "cd .." 사용을 방지하시겠습니까?

다음과 같이 .bashrc에 별칭을 설정했습니다.

alias u='cd ..'

내 세계에서는 모든 것이 잘되고 있습니다...이 글을 입력 cd ..하고 내 놀라운 새 별칭을 사용하지 않는다는 사실에 움츠러들기 전까지는 말입니다. 사실, 이 특별한 일에 있어서 그것은 꽤 뿌리깊은 것입니다. 내 행동을 바꾸는 것은 어렵습니다. 심각한 개입이 필요합니다.

그래서 자연스럽게 다음을 사용하지 못하도록 다른 별칭을 설정해 보았습니다 cd ...

alias 'cd ..'='echo "Use your alias!"'

그러나 이것은 분명히 작동하지 않습니다. 내 생각에는 이것이 u일종의 앨리어싱의 무한 루프에서 어떤 방식으로든 앨리어싱과 충돌할 수도 있다는 것입니다.

어떤 아이디어가 있나요?

답변1

명령에 몇 가지 추가 인수를 제공하는 것보다 더 복잡한 것은 별칭으로는 너무 많은 일이고 대신 함수가 필요합니다. builtin cd원본을 회상하는 데 사용됩니다 .

cd () {
  if [ "$*" = ".." ]; then
    echo 1>&2 'Use your alias instead!'
    return 2
  else
    builtin cd "$@"
  fi
}

bash ≥4.0을 실행하는 경우 이 특정 별칭의 유용성에 의문이 듭니다. shopt -s autocd자신의 이름 을 입력 ~/.bashrc한 다음 ..또는 다른 디렉터리 이름을 입력하면 해당 디렉터리로 전환됩니다.

관련 정보