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

Incredible Demos

  • By
    New MooTools Plugin:  ElementFilter

    My new MooTools plugin, ElementFilter, provides a great way for you to allow users to search through the text of any mix of elements. Simply provide a text input box and ElementFilter does the rest of the work. The XHTML I've used a list for this example...

  • By
    Fixing sIFR Printing with CSS and MooTools

    While I'm not a huge sIFR advocate I can understand its allure. A customer recently asked us to implement sIFR on their website but I ran into a problem: the sIFR headings wouldn't print because they were Flash objects. Here's how to fix...

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!