Remove annoying OS X DS_Store folders

find . -name .DS_Store -exec rm {} \;
Recursively removes all those hidden .DS_Store folders starting in current working directory.

By: Svish
2009-03-09 13:59:30

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.
goodevilgenius · 694 weeks and 2 days ago
In this case, the -delete action will work just fine. find . -name .DS_Store -delete
DEinspanjer · 694 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 =)
Svish · 694 weeks and 1 day 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.
atoponce · 694 weeks 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.
woxidu · 691 weeks and 1 day 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 {} \;
Svish · 638 weeks ago
seofox · 31 weeks and 5 days ago ????? ??? ????? ????? SEO - ????? ???? ????? ????? ????? ??? ????? ????? SEO - ????? ???? ????? ????? ????? ??? ????? ????? SEO - ????? ???? ????? ????? ????? ??? ????? ????? SEO - ????? ???? ????? ????? ????? ??? ????? ????? SEO - ????? ???? ????? ????? ????? ??? ????? ????? SEO - ????? ???? ????? ????? ????? ??? ????? ???? SEO ????? ????? ????? ???? ????? ????? ??? ???? ???? ??????? Search Engine Optimization ??? ????? ??????????? ?? ????? ?????????? ????? ????? ?? ???? ???SEO
seofox · 21 weeks ago
seofox · 20 weeks and 1 day ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. 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.

Share Your Commands

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.


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: