명령 옵션의 별칭을 설정하는 방법이 있습니까? 예를 들어, 나는 종종 options -mindepth
및 -maxdepth
with 를 사용 find
하지만 둘 다 길고 각각 9자이며 해당 약어가 없습니다. -mn
및 와 같이 더 빠르게 입력할 수 있는 이름으로 별칭을 지정하고 싶습니다 -mx
. 물론 언제든지 새로운 옵션 이름을 사용하여 사용자 정의 바이너리를 만들 수 있지만 저는 이 동작을 제공하는 쉘 내장/유틸리티에 관심이 있습니다( alias
명령이 별칭을 사용하도록 허용하는 방법과 유사).
답변1
셸 함수 또는 스크립트를 작성합니다. 유일한 질문은 극단적인 경우에 얼마나 관심이 있느냐는 것입니다. 네가 전혀 신경쓰지 않는다면
#!/bin/bash
args=()
while (($# > 0))
do
case "$1" in
("-mn") args=("${args[@]}" "-mindepth") ;;
("-mx") args=("${args[@]}" "-maxdepth") ;;
(*) args=("${args[@]}" "$1") ;;
esac
shift
done
exec find "${args[@]}"
조금 더 신경쓰신다면 사용해 보세요
("-mn") args=("${args[@]}" "-mindepth" "$2") ; shift ;;
변환하지 않도록 매개변수가 있는 다른 모든 찾기 옵션에 대해 유사한 사례를 추가합니다.
find / -name -mn -print
입력하다
find / -name -mindepth -print
이 스크립트를 호출하지 마십시오 find
. 아마도 fnd
find 또는 less보다 짧은 옵션이 필요하기 때문일 것입니다 myfind
. find를 호출하면 작동하게 할 수 있지만 주석에서 언급한 것처럼 표준 프로그램의 동작을 변경하는 방법을 알 수 없습니다.