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
    How I Stopped WordPress Comment Spam

    I love almost every part of being a tech blogger:  learning, preaching, bantering, researching.  The one part about blogging that I absolutely loathe:  dealing with SPAM comments.  For the past two years, my blog has registered 8,000+ SPAM comments per day.  PER DAY.  Bloating my database...

  • By
    9 Mind-Blowing Canvas Demos

    The <canvas> element has been a revelation for the visual experts among our ranks.  Canvas provides the means for incredible and efficient animations with the added bonus of no Flash; these developers can flash their awesome JavaScript skills instead.  Here are nine unbelievable canvas demos that...

Incredible Demos

  • By
    jQuery Random Link Color Animations

    We all know that we can set a link's :hover color, but what if we want to add a bit more dynamism and flair? jQuery allows you to not only animate to a specified color, but also allows you to animate to a random color. The...

  • By
    Morphing Elements Using MooTools and CSS

    Morphing an element between CSS classes is another great trick the MooTools JavaScript library enables you to do. Morphing isn't the most practical use of MooTools, but it's still a trick at your disposal. Step 1: The XHTML The block of content that will change is...

Discussion

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