다음 개체에 대한 별칭을 만들고 싶습니다.
rm -rf *
=>#rm -rf *
rm *
=>#rm *
을 입력할 때 rm -rf *
주석 처리하고 아무런 조치도 취하지 않기를 원합니다.
[Q] 일반적인 질문은 매개변수가 있는 명령에 대한 별칭을 생성할 수 있느냐는 것입니다.
답변1
공백이 포함된 별칭은 만들 수 없습니다. 즉, 다음과 같은 내용은 유효하지 않습니다.
alias 'rm -rf *'='#rm -rf *'
그러나 물론 매개변수를 사용하여 명령에 대한 별칭을 만들 수 있습니다.
alias foo='#rm -rf *'
#
귀하의 질문에 있는 예에서는 각각에 별칭을 갖고 싶은 것처럼 보이지만 rm
이렇게 하려면 별칭만 있으면 됩니다 rm
.
alias rm='#rm'
rm
에 대해 "비활성화"하려면 -rf
래퍼 함수를 작성해야 합니다.
rm() {
if [ "$1" != "-rf" ]; then
rm $@
fi
}
비활성화만
rm -rf *
하고 포함되지 않은 다른 항목은 그대로 유지할 수 있나요rm -rf
?*
그래 넌 할수있어. 예를 들어:
rm() {
if [ "$1" != "-rf" ]; then
rm $@
else
shift 1
x="$@"
if [ "$x" != "$(echo *)" ]; then
rm -rf $@
fi
fi
}