Find and Change Default App for File Type from Command Line
There are few things more frustrating to any computer user than files opening in an unwanted application. Sure you can use the
Open menu item in the desired application but we all just want to double-click a file and see it open in the application we expect. I recently got to thinking about this dilemma from a command line perspective: how I could find the default application and then change if I wanted to.
The first step is installing the
duti utility with HomeBrew:
brew install duti
duti equipped you can run the following to see the default app and associated ID which opens a given file extension:
# Check to see what app is meant to halde ".js" files duti -x js #Visual Studio Code.app #/Applications/Visual Studio Code.app #com.microsoft.VSCode
If you don't know the application ID for a given application you'd like to switch a file type to use, you can get it with the following:
osascript -e 'id of app "Atom.app"' # com.github.atom
You can change the default app for a given file extension via:
# Use Atom for all ".js" files duti -s com.github.atom js all # Open a .js file, watch it open in Atom! open ~/Projects/debugger.html/src/main.js
There are user interfaces for setting and getting the default app for opening file types but command line provides another type of convenience, if only for the sake of automation. Knowing how to achieve tasks with simple command line executions can make you a more efficient, agile developer!