When talking about paths, you can often hear “absolute path” or “relative path”. What do these mean?
Absolute path is a path which starts from the root directory of your Linux system. (Barrett, 2016) So an absolute path would be something like:
/home/mislav
Relative paths are relative to the directory you are currently in (the so called working directory). So, if I wanted to use the cd command (which allows me to change directories (“cd(1) – Linux man page,” n.d.)):
mislav@mislavovo-racunalo:~$ cd SomeFolder
I would go from ~ (which is a shorthand for /home/mislav) to SomeFolder, not from the root directory (denoted by /) to SomeFolder.
Hope this was useful!
References
Barrett, D. J. (2016). Linux pocket guide (3rd ed.). O’Reilly Media. Page 18
cd(1) – Linux man page. (n.d.). Retrieved January 5, 2020, from https://linux.die.net/man/1/cd
Maybe you heard the terms “parent directory” and “current directory”, “working directory” or “current working directory”. “What do these terms mean?” you might ask yourself. Well, fear not, because I have come to alleviate you from your ignorance! (imagine epic music playing in the background)
Working directory (or its synonyms), in the context of using the Linux command line, refers to the directory you are currently located in. (Barrett, 2016)Let me elaborate:
I just started a new Terminal session and this is what I get as output:
See the ~ between the : and $?Well, that is my working directory.~ actually stands for my home directory, so instead of ~, if we wanted to be fully correct, there should be /home/mislav. If you start a Terminal session, your working directory should also be ~ as well. From within the Terminal, you can change directories (using the cd command), but that is not the topic of this post.
Now, more importantly, why is it important to know in which directory you are in? A good question. It’s like I asked it myself. Let’s look at the following example:
The ls command lists directory contents. (“LS(1),” n.d.) But contents of what directory, exactly? Well, if you don’t explicitly say what directory, it is assumed that you want the ls to list the contents of the working directory.
So that’s why it is useful! Imagine if you were inside the directory you desire to operate upon and every time you wanted to call a command you needed to write out the full “trajectory” (also called a path) to the directory you wanted to operate on (as in ls /home/mislav while already being in /home/mislav). That’s tedious and programmers don’t like tedious. Thus, when calling a command (in our case, ls), it assumes you want to operate on the current directory.
Lastly, parent directory is the directory directly above the current directory. (Shotts, 2019) For example, if I was in the folder
/home/mislav
the parent directory of the mislav directory is the home directory. (3 uses of the word directory in one sentence, whew!)
Hope you learned something useful!
References
Barrett, D. J. (2016). Linux pocket guide (3rd ed.). O’Reilly Media. Pages 17-19
In Linux, you will find both directories and files. Think of directories like folders in Windows or like drawers or folders in everyday life – they are used to store files within them and give structure to your files. (“Directory (computing),” n.d.) Files are resources for storing information. (“Computer file,” n.d.)
Directories also have a hierarchy. So we can have directory1/directory2. That means that directory2 is a child directory of directory1. Imagine this as a folder within a folder. When we list the “hierarchical trajectory” from some directory to some other directory, we are talking about a path. (“Path (computing),” n.d.)