A small collection of command line tools for Mac OS X, incl.: clipcat, dict, eject, ql, swuser, trash & with.
Shell Perl Ruby


tools-osx README

by Morgan Aldridge morgant@makkintosshu.com

tools-osx on Ohloh


A small collection of command line tools that I've developed for Mac OS X over the years, à la NextStep/Mac OS X's open, pbcopy, pbpaste, etc. These are mostly bash scripts as an exercise in honing my bash-fu, but a number of Perl & Ruby scripts have been submitted by others.



clipcat prints and concatenates Mac OS Text Clippings. Submitted by David Kendal https://gist.github.com/705623.


dict performs a look-up in Mac OS X's included dictionary. Note: unlike the other scripts provided, this one requires that you have MacRuby installed http://macruby.org/. Submitted by David Kendal.


eject ejects a volume or network volume and all other volumes on the same local device. A shorter, simpler, smarter wrapper of diskutil's various eject/unmount options and allows specifying either a full path in /Volumes or just the volume name.


ql opens files with Mac OS X's Quick Look feature.


swuser switches users using Mac OS X's Fast User Switching feature. You can either switch out to the login window or to another user. Note: unfortunately, this is not currently compatible with screen.


trash allows trashing of files instead of tempting fate with rm. Correctly handles trashing files on other volumes, uses the same filename renaming scheme as Finder for duplicate file names, can list trash contents w/disk usage summary, and empty trash (including securely) w/confirmation. Does not require Finder to be running.


with sets the application with which specified documents will be opened. It can even change and open in one fell swoop. Submitted by David Kendal.


  1. Download and extract the tools.
  2. Run rake.
  3. Run sudo rake install. (If you have write permission on /usr/local/bin, you don't need to sudo.)


Looking for other Mac OS X-specific command line tools to complement these? Check out the following:


Special thanks to: David Kendal for all his submissions and collaboration; Matt Brictson for his initial relative path bug fix in trash; huyz for the improved determination of Finder's PID to prevent possible false-positives in trash.