
sudo를 통해 일반 사용자와 루트로 모두 사용하고 싶은 별칭이 있습니다. 구체적으로는 다음과 같습니다.
alias rm=trash
이것은 일반 사용자로서 잘 작동하고 루트 쉘 프롬프트를 얻기 위해 를 사용하면 잘 작동 sudo -i
하지만 를 사용하면 sudo rm
별칭이 적용되지 않습니다. 그렇다면 일회성 sudo 명령에서 작동하도록 별칭을 어디에 배치해야 합니까?
답변1
끝에 공백이 있는 sudo의 별칭을 만듭니다.
alias sudo='sudo '
그러면 다른 모든 별칭은 sudo에서 작동합니다.
그러나 다른 답변에서 언급했듯이 rm
실행을 위한 앨리어싱은 trash
아마도 나쁜 생각일 것입니다. 내가하고 싶은 것은 rm
다음과 같이 "비활성화"하는 것입니다.
alias rm='echo "rm is disabled, use trash or /bin/rm instead."'
trash
이를 통해 곧 . 대신에 타이핑하는 습관을 갖게 될 것입니다 rm
.
답변2
작동하지 않지만 함수를 사용하여 내보내면 작동합니다.
dl () { trash "$@"; }
export -f dl
별칭을 지정하는 것은 좋지 않은 생각입니다 rm
. 왜냐하면 별칭이나 기능이 자신을 보호하는 습관에 빠지고 어떤 이유로 별칭을 사용할 수 없게 되면 rm
다시 사용하기 어려운 많은 항목이 삭제되기 때문입니다. .