URI - Path in a file system.
A file is identified by its path through the file system.
A file path is a hierarchical URI
schema://authority/path
where:
Os | Root Node | Directory Delimiter in the path | Path Delimiter in the environment_variable |
---|---|---|---|
Windows Path | maps to a volume, such as C:\ or D:\ | back slashes | semicolon (;) |
Unix/Linux | A single root node is supported, which is denoted by the slash character, /. | forward slashes | colon |
Example:
/directory1a/directory1b/directory1c/myFile.extension:/directory2a/directory2b/directory3c/myFile
C:\directory1a\directory1b\directory1c\myFile.extension:D:\directory2a\directory2b\directory3c\myFile
relative file paths are much more portable.
Note:
The character used to separate the directory names (also called the delimiter) is specific to the file system.
Unix paths use forward slashes between directories.
A path is either:
The difference is that an absolute path begins with a prefix (root) while an relative path does not.
An abstract pathname has two components:
The first name in an abstract pathname may be:
Each subsequent name in an abstract pathname denotes a directory; the last name may denote either a directory or a file.
A pathname, whether abstract or in string form, may be either absolute or relative.
The canonical path is both an absolute and unique representation of a file in a file system.
The precise definition of canonical form is system-dependent.
A canonical method first converts the pathname to absolute form if necessary and then maps it to its unique form in a system-dependent way. This typically involves:
The prefix concept is used to handle:
resolve is an operation that will execute (in a change directory way) all its argument in a serial way to create a path
Example:
join('/b','/c') = '/c'
More File System - Resolve (Path Resolving)
join is an operation that will join all its argument to create a path
Example:
join('/b','/c') = '/b/c'
oracle: The second element of a path. See Oracle Database - SQL - Regular expression
REGEXP_REPLACE(path, '(/[^/]+)/([^/]+)(.*)','\2')