今まで接続先ごとにバラバラに関数作ってたけどこの際共通化してまとめてみました.Mac用に/Volumes/識別子
にマウントするように書いてます.オプションがある場合は今のところ~/.ssh/config
に書いておく前提です.
~/.bashrc, ~/.zshrc などに追記
sm() {
if [ $# -ne 1 -a $# -ne 2 ]; then
echo 'Usage: sm <identifier> [<path (default: home)>]' >&2
return 1
fi
mkdir "/Volumes/$1" 2>/dev/null
local trapper="
rmdir \"/Volumes/$1\" 2>/dev/null
trap - INT EXIT TERM HUP
return 1
"
trap "$trapper" INT EXIT TERM HUP
if sshfs "$1":"$2" "/Volumes/$1"; then
trap - INT EXIT TERM HUP
return
fi
eval "$trapper"
}
um() {
if [ $# -ne 1 ]; then
echo 'Usage: um <identifier>' >&2
return 1
fi
rmdir "/Volumes/$1" 2>/dev/null
umount "/Volumes/$1"
}