What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again.

Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/

Get involved!

You can sign-in using OpenID credentials, or register a traditional username and password.

First-time OpenID users will be automatically assigned a username which can be changed after signing in.

Universal configuration monitoring and system of record for IT.

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for:



May 19, 2015 - A Look At The New Commandlinefu
I've put together a short writeup on what kind of newness you can expect from the next iteration of clfu. Check it out here.
March 2, 2015 - New Management
I'm Jon, I'll be maintaining and improving clfu. Thanks to David for building such a great resource!

Top Tags



Remove annoying OS X DS_Store folders

Terminal - Remove annoying OS X DS_Store folders
find . -name .DS_Store -exec rm {} \;
2009-03-09 13:59:30
User: Svish
Functions: find rm
Remove annoying OS X DS_Store folders

Recursively removes all those hidden .DS_Store folders starting in current working directory.


There is 1 alternative - vote for the best!

Terminal - Alternatives

Know a better way?

If you can do better, submit your command here.

What others think

If you end it with \; then it runs rm separately for every file, which is unnecessary, so instead try

find . -name .DS_Store -exec rm {} +

That will make all the files as arguments to one rm command (or as many as your shell can handle) e.g. rm ./.DS_Store ./subfolder/.DS_Store ./path/to/.DS_Store ...

It's slightly easier on the system, and will run a bit faster for folders that have a lot of sub-folders with lots of .DS_Store files.

Comment by goodevilgenius 385 weeks and 2 days ago

In this case, the -delete action will work just fine.

find . -name .DS_Store -delete
Comment by DEinspanjer 385 weeks and 2 days ago

thanks for extra info. will try those out the next time I get a mac littered folder sent to me, hehe =)

Comment by Svish 385 weeks and 2 days ago

Before people go randomly deleting their .DS_store directories, it's worth knowing why the folder is there to begin with, and what its purpose it.

.DS_store directories are created every time you access a folder on your machine. It stores the position of icons, background image if any, and other attributes. Deleting this hidden directory means losing those customizations.

Also, next time you enter that folder, Mac OS X will recreate the .DS_store directory. So, you're just playing a cat and mouse game. Might as well learn how to use them appropriately rather than fight it.

Comment by atoponce 385 weeks and 1 day ago

Yeah, it seems like the use-case for this is if you've just transferred a directory tree to a non-OSX unix machine and want to clean it up. I can't see wanting to run this directly on my Mac, though.

Comment by woxidu 382 weeks and 2 days ago

Well, this was in fact for when I moved to a non-Mac. But I have also experienced that those files have become corrupt so I needed to delete them and let the os remake them. In my case it was actually the per-file meta file that was corrupted, but with a minor tweak this line helped me then too.

find . -name ._* -exec rm {} \;
Comment by Svish 329 weeks ago

Your point of view

You must be signed in to comment.