
引数が与えられたら、その引数がパターンとして含まれているフォルダを見つけるエイリアスを作成しようとします。エイリアスを呼び出してみましょうgohf
。
gohf <some-pattern>
それでは、このエイリアス(例:)を使いましょうgohf testing
。これで、名前に「testing」が含まれているフォルダが見つかり、最後のステップでそのフォルダに移動します。
私が考えることができるのは次のとおりです。
alias gohf='cd `find . -type d | grep testing`';
上記のエイリアスは、モードが常に「testing」の場合に有効です。エイリアスがsayとして使用されている場合、エイリアスをゲーム内gohf game
の名前のフォルダに移動させるにはどうすればよいですか?
ノート:
シェル:ksh
私は入力するパターンごとに1つのフォルダしかないとします。
答え1
manatworkがコメントで述べたように、引数をよりよく処理するには関数を使用する必要があります。
gohf(){
cd $(find . -type d -iname "$1" | sed 1q)
}
find
フラグを使用するのと同じことをしたり、結果をパイプする必要はありません。次に、最初の「ヒット」(複数の犬がいる場合)のみを処理するようにすべてをパイプします。grep
-name
-iname
sed
cd
複数の「クリック」を処理するには、次の手順を実行するfind
必要があります。
gohf(){
select dir in $(find . -name "$1" -type d)
do
cd $dir
break
done
}