MacOSXでramdiskを簡単に作成出来るスクリプトを書いた

macramdiskを作るときに3つくらい慣れないコマンドを叩かなくてはいけないので、直感的なコマンド名でramdiskを作成出来るようにしてみた。

ホームディレクトリにbinってディレクトリを作ってパスを通している事前提です。~/bin/mkramdiskとして下記のスクリプトを保存。つか、どこでもすきなところにどうぞ。

#!/bin/sh
#
# http://d.hatena.ne.jp/poch-7003/
# #poch7003
#

size=0
volume="ramdisk"

if [[ "$1" =~ ^[0-9]+$ ]]; then
        echo "$1 MB"
else
        echo "Usage: mkramdisk sizeMB [Volume name]"
        exit 1
fi

if [[ "$2" != "" ]]; then
        volume="$2"

        df -h |grep "/Volumes/$volume\$"

        if [[ $? == 0 ]]; then
                echo "exists [/Volumes/$volume]"
                exit 1
        else
                echo "make ramdisk [/Volumes/$volume]"
        fi
fi

size=$((2048*$1))
echo "$size sectors"

ramdev=`hdid -nomount ram://$size`
newfs_hfs -v $volume $ramdev
diskutil mount $ramdev

exit $?

こんな感じ

$ mkramdisk -h
Usage: mkramdisk sizeMB [Volume name]

$ mkramdisk 60 ram1
60 MB
make ramdisk [/Volumes/ram1]
122880 sectors
Initialized /dev/rdisk3 as a 60 MB HFS Plus volume
Volume ram1 on /dev/disk3 mounted

$ df -m /Volumes/ram1
Filesystem    1M-blocks   Used Avail Capacity  Mounted on
/dev/disk3           60      1    58     2%    /Volumes/ram1

通常は放っておいて良いが、直ぐにでも削除したいときはFinderでアンマウントか、下記のコマンド

$ hdiutil eject /Volumes/ram1

ちょろっとコンパイルするときや、もさっとある写真素材を見ていくときなど早くて便利。