The structure of Linux filesystems remains an ongoing knot of obfuscation that any expert must overcome: not only has its history left it arcane and convoluted but different distros, different install options, different apps, do things in different ways.

For example I would find it really useful to have a semi-graphical "where-to-find-it" map of all the stuff in my vanilla Debian install. Where does Evolution hold my emails and contacts, where should I install oddball apps I have downloaded and why, etc. etc.

Does this kind of resource exist?

"Klinger, do you know how many zoots were killed to make that one suit?" — BJ Hunnicutt, 4077 M*A*S*H

You may also be interested to hear that Arch Linux have recently done away with all the various /bin and /lib directories and merged them all into /usr/bin and /usr/lib which seems like a very sensible move

Spangwiches wrote:You may also be interested to hear that Arch Linux have recently done away with all the various /bin and /lib directories and merged them all into /usr/bin and /usr/lib which seems like a very sensible move

Not if you want /usr mounted read-only or mounted on NFS. There are traditional reason for the separation of / and /usr and while not all of them still apply, some do.

"Insanity: doing the same thing over and over again and expecting different results." (Albert Einstein)

In addition to those in the Tuxradar graphic, my system also has:
lib32
lib64 (a link to /lib)
lost+found
media
opt
selinux
srv
tmp
var

Many of these are explained in the Wikipedia article, and the others are reasonably obvious.

These more or less answer the "what will I find in here?" question, bar such things as confusion over mailboxes: I have a mailbox file in /var/mail but it is some kind of system mailbox, not my regular one (which is in $HOME/.evolution).

But they do not answer the "where should I put it?" question. For example calibre installed into /opt by default - why? Where should, or could, I have put it? /bin or /usr/bin or /usr/sbin or... ?

And of course they are generic, not exact for any given distro.

Last edited by guy on Tue Jun 04, 2013 1:52 pm, edited 1 time in total.

"Klinger, do you know how many zoots were killed to make that one suit?" — BJ Hunnicutt, 4077 M*A*S*H

/opt tends to be used as a dumping ground for binary programs, things like adobe-flash. Calibre should be installed into /usr. The only programs installing into /{bin,sbin,lib} should be those required before the kernel mounts any filesystems.

Of course, the list of such "requirements" is ever growing and the cause of much heated discussion, particularly in view of the decision by the udev/systemd developers to roll everything into /usr and require an initramfs for any system that needs a separate /usr.

"Insanity: doing the same thing over and over again and expecting different results." (Albert Einstein)