argius note

プログラミング関連

mkdirとcdを同時に

ディレクトリを作って、すぐそのディレクトリに移動したい場合、

$ mkdir newdir && cd newdir

としています。
同じ名前を2回入力しなければならないのが非常に不満です。これ、未だに一般的な対応方法にお目にかかっていないのですが、需要はないのでしょうか。わざわざ書くまでもない事だからでしょうか。


先日、方法を思いついたので、書いておきます。
下記のスクリプトを書いたファイルを、適当なディレクトリに置きます。パスが通ってないところでもOKなので、"~/.mcd.sh"とかに置いてみましょうか。

#!/bin/sh
mkdir -p $1 && cd $1

これを、"source"コマンドで実行するようaliasを定義します。

$ alias mcd="source ~/.mcd.sh"

古いタイプ(?)のBshellでは"source"が使えないので、

$ alias mcd=". ~/.mcd.sh"

とします。

$ pwd
/home/argius/
$ ls
tmp
$ mcd tmp/newdir
$ pwd
/home/argius/tmp/newdir