In Linux systems, absolute paths and relative paths are two methods of specifying the virtual address of a file or directory. So what's the difference between these two path types, and which one should you use in your commands? Let’s find out together.
Absolute paths and relative paths in Linux
If you have ever used parameter-based Linux commands such as cd or ls, you should know that there are multiple ways to specify the path to a file or directory.
You can choose to use plain path expressions, or, if you are an advanced Linux user, you can use complex regular expressions to pass file or directory names to the program. But either way, there are only two ways to specify a directory path on a Linux system: absolute paths and relative paths.
Absolute path expression
Absolute paths always start from the root directory and end at the actual directory or file you want to point to. When using absolute path expressions, you type all subdirectory names that exist in the hierarchy leading to the final location.
For example, if you want to use an absolute path expression to point to /html/linuxmi.com in the /var/www directory, you can use:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ /var/www/html/linuxmi.com
“
…where the / at the beginning of the expression represents the root directory on Linux.
Relative path expression
On the other hand, a relative path refers to a path expression that uses another path (usually the current working directory) as its root or base. As the name suggests, it is "relative" to existing paths on the system.
For example, if you are currently in the /var/www directory and need to point to /html/linuxmi.com, you would use:
┌──(linuxmi㉿linuxmi)-[/var/www] └─$ cd ./html/linuxmi.com
“
…where . represents the current directory you are in. You can change the current working directory using the cd command.
In addition to a single period (.), relative path expressions also use double periods (..) to refer to the parent directory.
For example, assume you are in the /www folder in the following directory structure:
/var/www/html/linuxmi.com
“
In the above path expression, . will represent the /www directory, and .. will point to the /var directory. If you need to access another directory /mail in /var in /var/www, you can use:
cd ../mail
It's that simple.
Absolute vs. relative: Which path expression is better?
Although path expressions may seem simple and unimportant to desktop users, using the wrong pathname can cause a lot of unsolicited inconvenience in various use cases. Web servers are a good example.
As a web developer working on a project hosted on a Linux server, you need to access files in the project directory. Here, using relative path expressions is standard since any change in the project's subdirectory name or domain name may cause the link to break.
Linux terminal directory list
You can understand this with a simple example that desktop users might understand better. The / character represents the root directory on a Linux system. Imagine if you suddenly changed this and made the / character point to your home directory. Many commands containing absolute path expressions will not work because / has now been reassigned to a different directory.
Another advantage of using relative path expressions is that since they are relative to the current working directory, they save time typing unnecessary characters.
The only problem here is the complexity and learning curve with relative expressions. But it's also common with absolute path expressions; to become a master at using absolute paths, you need to be familiar with Linux directory hierarchies. You can use the tree command to view the entire Linux directory tree and make absolute path expressions easier.
Understanding the Linux directory hierarchy
Linux directory structure is common to all machines running Linux-based operating systems. You can use commands such as ls or tree to learn more about the structure of files and folders on your computer. ****
The above is the detailed content of Relative paths and absolute paths in Linux are so simple. For more information, please follow other related articles on the PHP Chinese website!