Find and Change Default App for File Type from Command Line

By  on  

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

With 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!

Recent Features

  • By
    5 HTML5 APIs You Didn’t Know Existed

    When you say or read "HTML5", you half expect exotic dancers and unicorns to walk into the room to the tune of "I'm Sexy and I Know It."  Can you blame us though?  We watched the fundamental APIs stagnate for so long that a basic feature...

  • By
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

Incredible Demos

  • By
    Creating the Treehouse Frog Animation

    Before we start, I want to say thank you to David for giving me this awesome opportunity to share this experience with you guys and say that I'm really flattered. I think that CSS animations are really great. When I first learned how CSS...

  • By
    jQuery Chosen Plugin

    Without a doubt, my least favorite form element is the SELECT element.  The element is almost unstylable, looks different across platforms, has had inconsistent value access, and disaster that is the result of multiple=true is, well, a disaster.  Needless to say, whenever a developer goes...

Discussion

    Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!