エイリアスコマンドオプション

エイリアスコマンドオプション

コマンドオプションのエイリアスを設定する方法はありますか?たとえば、私はしばしば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を呼び出すとうまくいくかもしれませんが、コメントで述べたように、標準プログラムの動作を変更する方法はわかりません。

おすすめ記事