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:



2011-03-12 - Confoo 2011 presentation
Slides are available from the commandlinefu presentation at Confoo 2011: http://presentations.codeinthehole.com/confoo2011/
2011-01-04 - Moderation now required for new commands
To try and put and end to the spamming, new commands require moderation before they will appear on the site.
2010-12-27 - Apologies for not banning the trolls sooner
Have been away from the interwebs over Christmas. Will be more vigilant henceforth.
2010-09-24 - OAuth and pagination problems fixed
Apologies for the delay in getting Twitter's OAuth supported. Annoying pagination gremlin also fixed.




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 315 weeks and 6 days ago

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

find . -name .DS_Store -delete
Comment by DEinspanjer 315 weeks and 6 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 315 weeks and 6 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 315 weeks and 4 days 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 312 weeks and 6 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 259 weeks and 4 days ago

Your point of view

You must be signed in to comment.