Linux Dot File Problems: .svn .htaccess .DS_Store etc

By Xah Lee. Date: . Last updated: .

unix/linux by convention generates a lot dot files.

[Death to .DS_Store By Spencer Nielsen. At , accessed on 2011-12-25 ]

For example, Mac OS X generates these:

Who started all this? Its unix. Example:

These are headaches in many ways. Particularly nasty are those that litters in every directory it touches (For example, {.cvs, .svn, emacs_backup~, #emacs#, .htaccess, .DS_Store, etc}) When you use {rsync, unison, grep, etc} you have to exclude a gazillion files/dirs by some long unreadable regex (and each of the shell tool uses a incompatible syntax and char escape mechanisms). Or, when you transfer files across network or by {zip, usb}, you get a bunch of garbage. 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 .

Proper solution is for the programs to set a designated folder to store their stuff. Either as a OS convention of one single designated folder per user (For example, 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 files in every folder it touches.

Unix do this because it is convenient for the developer. That's the life story of unix. It's super convenient for the lazy app developer, because he doesn't have to deal with one extra directory, dir mapping, data syncing issues, etc. (For example, .cvs.) And you just brain wash your users to feel that's natural way of life.

“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?)

See also: Rob Pike on the Origin of Unix Dot File Names

Here is some useful scripts and tutorials:

Here is some unix hatred articles:

svn Stopped Creating .svn Files

svg (subversion control) used to create lots of .svn files in every directory it touches. (same as cvs) It stopped doing that, with svn 1.7, released on .

[see svn Tutorial]

The unixers, after 30 years, finally realized their wrong doing.