18.5 realpath: Print the resolved file name.

realpath expands all symbolic links and resolves references to
‘/./’, ‘/../’ and extra ‘/’ characters. By default,
all but the last component of the specified files must exist. Synopsis:

realpath [option]… file…

The file name canonicalization functionality overlaps with that of the
readlink command. This is the preferred command for
canonicalization as it’s a more suitable and standard name. In addition
this command supports relative file name processing functionality.

Ensure that all components of the specified file names exist.
If any component is missing or unavailable, realpath will output
a diagnostic unless the -q option is specified, and exit with a
nonzero exit code. A trailing slash requires that the name resolve to a
directory.

‘-m’

‘--canonicalize-missing’

If any component of a specified file name is missing or unavailable,
treat it as a directory.

‘-L’

‘--logical’

Symbolic links are resolved in the specified file names,
but they are resolved after any subsequent ‘..’ components are processed.

‘-P’

‘--physical’

Symbolic links are resolved in the specified file names,
and they are resolved before any subsequent ‘..’ components are processed.
This is the default mode of operation.

‘-q’

‘--quiet’

Suppress diagnostic messages for specified file names.

‘--relative-to=dir’

Print the resolved file names relative to the specified directory.
Note this option honors the -m and -e options
pertaining to file existence.

‘--relative-base=dir’

Print the resolved file names as relative if the files
are descendants of dir.
Otherwise, print the resolved file names as absolute.
Note this option honors the -m and -e options
pertaining to file existence.
For details about combining --relative-to and --relative-base,
see Realpath usage examples.

‘-s’

‘--strip’

‘--no-symlinks’

Do not resolve symbolic links. Only resolve references to
‘/./’, ‘/../’ and remove extra ‘/’ characters.
When combined with the -m option, realpath operates
only on the file name, and does not touch any actual file.

‘-z’

‘--zero’

Output a zero byte (ASCII NUL) at the end of each line,
rather than a newline. This option enables other programs to parse the
output even when that output would contain data with embedded newlines.