별칭 명령 옵션

별칭 명령 옵션

명령 옵션의 별칭을 설정하는 방법이 있습니까? 예를 들어, 나는 종종 options -mindepth-maxdepthwith 를 사용 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. 아마도 fndfind 또는 less보다 짧은 옵션이 필요하기 때문일 것입니다 myfind. find를 호출하면 작동하게 할 수 있지만 주석에서 언급한 것처럼 표준 프로그램의 동작을 변경하는 방법을 알 수 없습니다.

관련 정보