The /sdcard direcory and other directory conventions: how is the Android filesystem structured? I am using the "adb shell" command to access either of an LG P690 (device A) or a Samsung Galaxy SIII (device B). Device A also has a 32GB microSD card plugged in while device B does not. When fromthe shell prompt I cd /sdcard and do a df I get:


On device A: /sdcard Size 14G Blksize 8192
On device B: /sdcard Size 12G Blksize 4096


Does this refer to internal memory? Device B also has a /storage directory which holds 0 bytes (what is this?).

Also, both have a /data directory which I know is where installed apps go. Is this also on internal storage? How do I know whether /data is on internal or external SD?

I'm confused as to why a directory called /sdcard would refer to internal as opposed to external memory. Is there no FHS standard for the Android file system as there is for Linux?
That's two different things, at least the first depending on a) Android version, b) manufacturer, and c) sometimes even the device in question:


before Android 4.0, /sdcard usually was were the external SDCard was to be found
starting with Android 4.0 (or even 3.x?), this changed for most devices, and usually became the place of the so-called internal SDCard
where the external SDCard is found with the latter group, differs a lot. Locations known to me include:

/sdcard_ext
/sdcard/external_sd



What really resides where, you can check with commands like mount or df. While mount will list all mounted file systems (including the "virtual" ones like e.g. /proc and /sys), together with details on where they were mounted from and what options have been used, this might be a bit confusing (at least to beginners). So you might rather want to use df, which sticks to the "real file-systems": it does not show where they are mounted from, but instead shows their total/used/free space, which might be even more useful to figure out what matches best.

As for /data: Yes, this usually resides on internal storage -- but might also depend on implementation. With Android 4.x, "internal storage" and "internal SDCard" are often "unified" (i.e. the "internal SDCard" often is nothing but a directory on internal storage). This was done a.o. to get rid of the problem of a filled-up internal storage (it can "expand" into the internal SD area now), or a full internal SDCard and plenty of space on internal storage (can "expand" the other way around, too -- as it's all the same "drive").