954,228 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Understanding the Linux file path system

I'M rather new to Linux and I've just started with Ubuntu. I'M trying to understand the file system. I see that rather than a traditional drive letter like C: , Linux uses a single /. But I guess my real question is, where are programs stored? In Windows they're stored in X:Program Files\. One other thing, what is the file extension for a program launcher, the linux equivelent of a windows .exe? I was trying to find the launcher to a program but found myself unable to be specific enough to find what I needed with an extension.

Garrett85
Posting Whiz in Training
201 posts since Oct 2009
Reputation Points: 10
Solved Threads: 1
 

OK hopefully this will clear up some of your questions:

The linux executable format
Most binary executable programs in Linux do not have an extension like in Windows (which use the .exe extension).
For example, the 3D program Blender, in windows the executable is called 'blender.exe'. In *nix it's just called 'blender' (no file extension)

The program launchers (I guess these are more or less equivalent to a program shortcut in windows) use the .desktop extension and are basically XML files.

File-system/paths
Regarding the Linux filesystem, the '/' at the start of a path indicates the root/top level of the file-system. It doesn't necessarily refer to any single drive per se.

So in a shell if I typed the following path:

cd /

it would take me to the root of the filesystem. Likewise:

cd /media/

Would take me to the media directory, which is off the root of the file-system. Incidentally, the media directory is where any removable USB storage devices will be listed.

Speaking of which, if we had an 8GB USB stick plugged into our PC with the volume label JAS8GB; to access it from the command line in windows you'd navigate to whatever drive letter it was assigned to:

cd J:\



(or K:\ or whatever!).

To access the device from *nix, as long as the device was mounted (which Ubuntu/Gnome seems to do automatically on insertion of USB drives), you'd need to navigate to:

/media/JAS8GB/


More on paths:
'./' denotes the current directory
'../' denotes the parent directory of the current directory
'~/' is an alias for the current users home directory so:

cd ~/Documents/Notes/

would be equivalent to:

cd /home/jason/Documents/Notes/


Program files
Program files can be found all over the place in the *nix filesystem including:
/bin/ <--- contains core system programs
/usr/bin/ <--- contains installed programs
/usr/games/ <--- contains installed games
/usr/share/applications/ <--- contains program launchers (.desktop files!)

Note: Some of these paths could be specific to Ubuntu. I know some distros put things in slightly different places sometimes!

BTW: In *nix everything is treated as a file. Even things like processes. The /proc/ folder contains any currently running processes!

When coming from windows, the *nix filesystem seems a bit maze-like and difficult to comprehend at first, but once you get used to it and where things are it's quite simple!
I hope that was of some help to you.
Cheers for now,
Jas.

JasonHippy
Master Poster
769 posts since Jan 2009
Reputation Points: 590
Solved Threads: 125
 

P.S. There's also the /usr/share/app-install/desktop/ directory which also contains .desktop files for applications and the /usr/share/app-install/icons/ directory which contains icons for installed applications.

JasonHippy
Master Poster
769 posts since Jan 2009
Reputation Points: 590
Solved Threads: 125
 
Akira Takano
Newbie Poster
4 posts since May 2010
Reputation Points: 10
Solved Threads: 1
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: