Recursively Delete Files from Command Line

By  on  

I'm one of those people who can't stand a messy laptop;  I don't keep around files I don't need and I refuse to install apps unless I absolutely need them.  Unfortunately Mac OS X and Windows generate files whenever they like, like .DS_Store and Thumbs.db.  Sure they serve their purpose but that doesn't mean the clutter doesn't annoy me.

If you want to recursively find delete files you don't want, there's a simple way to do that:

find . -name '.DS_Store' -type f -delete

You can use * as a wildcard too:

find . -name '*.zip' -type f -delete

Of course my cleanup only lasts a short time, but hey -- you can use this command for more intelligent purposes!

Recent Features

  • By
    Convert XML to JSON with JavaScript

    If you follow me on Twitter, you know that I've been working on a super top secret mobile application using Appcelerator Titanium.  The experience has been great:  using JavaScript to create easy to write, easy to test, native mobile apps has been fun.  My...

  • By
    fetch API

    One of the worst kept secrets about AJAX on the web is that the underlying API for it, XMLHttpRequest, wasn't really made for what we've been using it for.  We've done well to create elegant APIs around XHR but we know we can do better.  Our effort to...

Incredible Demos

  • By
    Create Digg URLs Using PHP

    Digg recently came out with a sweet new feature that allows users to create Tiny Digg URLs which show a Digg banner at the top allowing easy access to vote for the article from the page. While I love visiting Digg every once in a...

  • By
    Drag and Drop MooTools File Uploads

    Honesty hour confession:  file uploading within the web browser sucks.  It just does.  Like the ugly SELECT element, the file input is almost unstylable and looks different on different platforms.  Add to those criticism the fact that we're all used to drag and drop operations...

Discussion

  1. Tolga

    Interestingly. I only knew about -exec and xargs.

  2. Hristo
    rm find . -name '.DS_Store'
  3. I use Asepsis for .DS_Store files: http://asepsis.binaryage.com/

  4. Just to mention that the order of the -delete flag is very important. Putting -delete flag first will make find try to delete everything below the specified starting point.

  5. If you’re on Windows, the following will work the same:

    del /s .DS_Store
    del /s Thumbs.db
    
  6. Using -iname instead of -name will ignore case.

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