パチッパチッ - mountラッパ

mountとumountって、普通はスイッチみたくON/OFFするだけだよな。2つのコマンドをわざわざ使い分けるのが面倒だ。
現在の状態見て適当にmountとumountを使い分けて欲しい。(mountオプションを変更するようば場合にmountしたままでmountコマンドを実行する必要があるので、mountとumountを1つにせよと言っているわけではないんだけど。)
ということで、mountとumountのラッパーを作ってみた。以下をファイル名mntとして保存する。

#!/usr/bin/env ruby
# -*- ruby -*-
#
# $Id: mnt,v 1.2 2005/02/28 19:39:44 s-tanaka Exp $
#

def mounted
  `df`.split(/\n/)[1 .. -1].collect {|l| l.split(/\s/)[-1] }
end

def usage
  puts 'usage: mnt [dir]'
  exit 1
end

ARGV[0] or usage

dir = '/mnt/' + ARGV[0]
cmd = (mounted.include?(dir)) ? 'umount' : 'mount'

puts "#{cmd} #{dir}"
exec cmd, dir

例えば、

$ cat /etc/fstab
...
/dev/sd0e /mnt/usb msdos rw,noauto 0 0
...

のようにUSBメモリを/mnt/usbにmountするとして、mntコマンドを実行してみる。

$ mnt usb
mount /mnt/usb
$ df
Filesystem  1M-blocks     Used     Avail Capacity  Mounted on
/dev/wd0a         495      316       153    67%    /
/dev/wd0e        5954     3740      1916    66%    /usr
/dev/wd0f        2997     2586       260    90%    /home
/dev/sd0e          29        4        25    15%    /mnt/usb
$ mnt usb
umount /mnt/usb

mntコマンドを使うと、zshとかbashとかでCtrl-Rで履歴を検索するときに「あー、mountコマンドの履歴を検索したいのにumountしか見付からんよー、いらいら」ということがなくなる。