LoginSignup
5
1

More than 5 years have passed since last update.

mkdirしたディレクトリにそのまま移動するfunctionをfishで実装した。

Posted at

mkdirして追加したディレクトリに、そのまま移動するためのコマンドをfish shellのfunctionとして実装してみた。

function mkcd
  if test (count $argv) -eq 0
    echo "Pass dir name"
    return 1
  end

  set dirname $argv[1]
  mkdir -p $dirname
  eval "cd" $dirname
end

pオプションでmkdirを実行するので、複数階層を一度に作って遷移することも可能。
evalを使ってcdしているが、これをしないとコマンド終了時に元のプロセスに戻ったタイミングで実行していたパスになってしまう。この辺りはbashと同じ。

使い方は以下の通り。

~> mkcd test 
~/test> 
~/test> mkcd t1/t2
~/t/t/t2> 
5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1