$ function mkfile () { mkdir -p $(dirname "$@"); touch $@; } $ ls /tmp/foo/bar ls: /tmp/foo/bar: No such file or directory $ mkfile !:$ mkfile /tmp/foo/bar $ ls -l /tmp/foo/bar -rw-r--r-- 1 user user 0 2008-02-04 23:10 /tmp/foo/bar $