sudo 명령에 별칭을 지정하려면 어떻게 해야 하나요?

sudo 명령에 별칭을 지정하려면 어떻게 해야 하나요?

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다시 사용하기 어려운 많은 항목이 삭제되기 때문입니다. .

관련 정보