クエリ式の一部にエイリアスを追加するには?

クエリ式の一部にエイリアスを追加するには?

-regex私はシェルパターン構文よりも正規表現を好みます-name。私もposix-egrep型を使いたいので、次のようなことをしたいと思います。

alias find="find -regextype posix-egrep"

ただし、パスが式の前にある必要があるため、これはエラーです。ただし、-regextype式から最初に来る必要があります(または-regexorを使用する前に-iregex)。

find私は単に正常に動作し、orオプションをposix-regex使用することを決定するたびに使用できるようにエイリアスを指定するか、シェル機能を持​​ちたいと思います。-regex-iregex

どうすればいいですか?

ベストアンサー1

パラメータは場所によって異なるため、find関数はより良い解決策になります。

find(){
  command find "$1" -regextype posix-egrep "${@:2}"
}

find元のコマンドを「上書き」したいので、新しい関数が自分自身を呼び出す無限ループを生成しないようにフルパスを使用する必要があります。

エイリアスの代わりに関数を使用すると、位置引数変数($1-$n)を使用できます。最後に他のものを追加したい場合があるので、配列スライスを使用して最初の引数(パス)を除くすべての項目を追加してfindコマンドを追加します。${@:2}

おすすめ記事