What is an Absolute Pathname vs a Relative Pathnam

2020-02-16 02:59发布

问题:

Like the title says, what is the difference between an absolute and relative pathname? I'm taking a Computer Organization class right now, and the lecture I'm in is a crash course in Unix. The lecture slides say:

 The pathnames described in the previous slides start at the root. 
 These pathnames are called 'absolute pathnames'

For reference, the "previous slides" basically showed a file tree with the root directory / as the top node.

The slide after it says:

If we are in the directory /home/chrisc, the relative pathname of the 
file 'syllabus' in the directory /home/chrisc/comporg/ is:
comporg/syllabus

I'm still confused by what the difference is between an absolute and relative pathname. For example, I'm on a Mac. My root directory is /. To get to my Documents from /, I would have to do cd /Users/Daniel/Documents.

Once in my documents, I need to access a folder called School. If I want to get to School, I would do cd School.

From this understanding, is the relative path for any given file basically the file path beneath the directory you are currently "standing in"?

回答1:

You are correct in your assumption.

the relative path is the path minus the output from pwd.

the absolute path always starts from the root "/" directory.

example:

if you have just logged in you are in your home directory - /home/user - and have a file text.txt in your home directory.

the relative path is text.txt

the absolute path is /home/user/text.txt



回答2:

A relative path is a path relative to some working directory (the directly you are currently at, for example).

In that sense, a relative path can be interpreted as a series of instructions telling you how to reach the target from your working directory.

An absolute path is a path relative to some root directory (C:\ on windows for example or / on UNIX-like systems).

So you are correct.



回答3:

  • An absolute path starts with the character /.
  • A relative path does not.

The literal wording from the POSIX standard:

[A relative path is] A pathname not beginning with a <slash> character.

[An absolute path is] A pathname beginning with a single or more than two <slash> characters.