A commandline oneliner to mount a network drive in OSX using Finder from applescript. (+ script & emacs lisp function)
At work we use a Network Access Server (NAS) to store data and my office computer is an iMac (… yeah, I know). Somehow I never managed to use the normal
mount command to connect to the server. Of course, one can always use the Finder GUI to connect to the NAS (“CMD+K”), but as I recently needed to use my office computer remotely and access data from the NAS, a mount method from the terminal was needed.
After some searching I found a solution using applescript (https://stackoverflow.com/questions/4108808/applescript-oneliner). One can basically write a script that tells Finder to mount the NAS without the GUI,
# mount_nas.scpt tell application "Finder" activate open location "smb://<user>@<host>/<path>" end tell
which can then be envoked by
I also wanted a direct oneliner, which can be achieved by
osascript -e "tell application \"Finder\" to activate & open location \"smb://<user>@<host>/<path>\"" &> /dev/null
Somehow this threw an ugly warning, which I just suppressed by appending
Finally I wanted to mount the NAS from within emacs, which got me to this function:
defun mnd/mount-nas () ("mount a samba nas in osx using finder from applescript" (interactive) (call-process-shell-command"osascript -e " (concat "\"tell application \\\"Finder\\\" to activate & " "open location " "\\\"<user>@<host>/<path>\\\"\" " "&> /dev/null")))
Just needed to be a bit careful with the escapes.