Open In App

Path Name in File Directory

Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite – File Systems Hierarchical Directory Systems – Directory is maintained in the form of a tree. Each user can have as many directories as are needed so, that files can be grouped together in a natural way. Advantages of this structure:

  • Searching is efficient
  • Groping capability of files increase

When the file system is organized as a directory tree, some way is needed for specifying file names. Two different methods are commonly used:

  1. Absolute Path name – In this method, each file is given an absolute path name consisting of the path from the root directory to the file. As an example, the path /usr/ast/mailbox means that the root directory contains a subdirectory usr, which in turn contains a subdirectory ast, which contains the file mailbox. Absolute path names always start at the root directory and are unique. In UNIX the components of the path are separated by ‘/’. In Windows, the separator is ‘\’. Windows \usr\ast\mailbox UNIX /usr/ast/mailbox
  2. Relative Path name – This is used in conjunction with the concept of the working directory (also called the current directory).A user can designate one directory as the current working directory, in which case all path names not beginning at the root directory are taken relative to the working directory. For example, if the current working directory is /usr/ast, then the file whose absolute path is /usr/ast/mailbox can be referenced simply as mailbox. In other words, the UNIX command : cp /usr/ast/mailbox /usr/ast/mailbox.bak and the command : cp mailbox mailbox.bak do exactly the same thing if the working directory is /usr/ast.

When to use which approach? Some programs need to access a specific file without regard to what the working directory is. In that case, they should always use absolute path names. For example, a spelling checker might need to read /usr/lib/dictionary to do its work. It should use the full, absolute path name in this case because it does not know what the working directory will be when it is called. The absolute path name will always work, no matter what the working directory is. Of course, if the spelling checker needs a large number of files from /usr/lib, an alternative approach is for it to issue a system call to change its working directory to /usr/lib, and then use just dictionary as the first parameter to open. By explicitly changing the working directory, it knows for sure where it is in the directory tree, so it can then use relative paths.

Why would you use an absolute path name instead of a relative path name?

Absolute path names provide an unambiguous way to refer to a file or directory regardless of the current working directory. This is useful when you need to specify a file or directory location in a command or script that will be run in different working directories. It is also useful when referring to files or directories that are located in the same location on different machines.


Last Updated : 05 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads