頻出コンボ
というのは頻出コンボだと思う。ということで、このコンボを簡略化してみる。
まず一つ目。指定したディレクトリを作成して、そこに移動する。
以下の内容を.profileに書く。
mdcd() { mkdir -p "$1" cd "$1" }
(2005/02/24 バグフィックス(^^;;)
二つ目。01、02、03とシーケンシャルな番号のディレクトリを作成して、そこに移動する。まず、以下の内容でndirというファイルを作って、
#!/usr/bin/env ruby # -*- ruby -*- # # $Id: ndir,v 1.1 2005/01/15 14:51:54 s-tanaka Exp $ # dirs = [] Dir.open((ARGV[0]) ? ARGV[0] : '.') do |dir| dir.each do |file| next unless FileTest.directory? file next unless file =~ /^\d\d$/ dirs << file end end puts (dirs.size == 0) ? '01' : dirs.sort[-1].succ
以下を.profileに追加する。
ndcd() { local dir=`ndir` mkdir -p $dir cd $dir }
(2005/02/24追記)
http://quasiquote.org/log/2005/02/23/shellscript-tipsで/usr/binだけで実行可能なndir()を教えていただきました。Rubyをインストールしていない方はこちらをどうぞ。
ndir() { # $d: 最後のシーケンシャルなファイル名を拾う local d=`ls | egrep '^[0-9]+$' | sort -n | tail -1` # $w: ファイル名の文字数 local w=`echo $d | wc -c | rs 0 1` if [ "$d" = "" ]; then d=-1; w=1; fi printf %0`expr $w - 1`d `expr $d + 1` }
(2005/02/24追記ここまで)
三つ目。0221とか0222とか日付けのディレクトリを作成して、そこに移動する。
ddcd() { local dir=`date +%m%d` mkdir -p $dir cd $dir }
ちょっとの工夫がいい感じ。でもやりすぎるとまっさらの環境で使いものにならなくなるんだよなぁ。