Perm URL with updates: http://xahlee.org/comp/mac_os_xs_DS_Store_unix_init_svn.html
Here's a nice article. The author modified Mac Finder to not generate 〔.DS_Store〕.
- Death to .DS_Store (2011-12-24) By Spencer Nielsen. @ Source www.aorensoftware.com
(Cached site with images: Source cache.historious.net)
Note that besides 〔.DS_Store〕, the Mac OS X also creates other junk, e.g.:
.DS_Store .localized .FBCIndex .FBCLockFolder .FBCSemaphoreFile Desktop DB Desktop DF
and Windows used to create 〔Thumbs.db〕 among others.
Who started all this fuck? Its your beloved unix, folks. e.g.
.profile .bashrc .emacs .viminfo .xinitrc .cvs .svn .htaccess …
These are headaches in many ways. When you “rsync” or “unison” between machines, or zip files from OS X, or take data from USB, or grep. In essence, the problem is that these programs create side-effects for their own convenience, not user's convenience. It stem from certain unix philosophy.
and unixes (linux) still do it to this day happily, as if god said so.
“I liken starting one's computing career with Unix, say as a undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act.” — Ken Pier, Xerox PARC (~1980s?)
Proper solution is for the programs to set a designated folder to store their shit. Either as a OS convention of one single designated folder per user (e.g. Modern Windows's 〔%HOMEPATH%\AppData\〕 or Mac's 〔~/Library/〕). If the OS doesn't provide such a dir, then the app should set a designated folder for it, not litter random files in every folder it touches.
Unix do this fuck up of course because it is convenient at the moment. That's the life story of unix. It's super convenient for the lazy programer, because he doesn't have to deal with one extra directory, dir mapping, data syncing issues, etc. (e.g. 〔.cvs〕.) And you just brain wash your users to feel that's natural way of life.
Here's some useful scripts and tutorials:
- Perl Scripts For Removing Mac Resource Fork, “.DS_Store”, “Thumbs.db”…
- Mac and Windows File Conversion
- How to rsync, unison, wget, curl
- How to Use Unison for Syncing Files (Unison tutorial)
- Unix And Windows File Permission Systems
- rsync Windows to unix File Permissions
Here's some unix hatred articles:
- Unix zip Utility Path Problem
- Unix and the mbox Email Format
- Unix, RFC, Line Truncation
- On Unix Filename Characters Problem
- UNIX Tar Problem: File Length Truncation, Unicode Name Support