path for path

Explore and manipulate paths.


> path {flags}

Input/output types:



You must use one of the following subcommands. Using this command as-is will only produce this help message.

There are three ways to represent a path:

  • As a path literal, e.g., '/home/viking/spam.txt'
  • As a structured path: a table with 'parent', 'stem', and 'extension' (and
  • 'prefix' on Windows) columns. This format is produced by the 'path parse' subcommand.
  • As a list of path parts, e.g., '[ / home viking spam.txt ]'. Splitting into parts is done by the path split command.

All subcommands accept all three variants as an input. Furthermore, the 'path join' subcommand can be used to join the structured path or path parts back into the path literal.


path basenameGet the final component of a path.built-in
path dirnameGet the parent directory of a path.built-in
path existsCheck whether a path exists.built-in
path expandTry to expand a path to its absolute form.built-in
path joinJoin a structured path or a list of path parts.built-in
path parseConvert a path into structured data.built-in
path relative-toExpress a path as relative to another path.built-in
path splitSplit a path into a list based on the system's path separator.built-in
path typeGet the type of the object a path refers to (e.g., file, dir, symlink).built-in