path dirname for path

Get the parent directory of a path.

Signature

> path dirname --replace --num-levels

Parameters

  • --replace {string}: Return original path with dirname replaced by this string
  • --num-levels {int}: Number of directories to walk up

Input/output types:

inputoutput
list<string>list<string>
stringstring

Examples

Get dirname of a path

> '/home/joe/code/test.txt' | path dirname
/home/joe/code

Get dirname of a list of paths

> [ /home/joe/test.txt, /home/doe/test.txt ] | path dirname
╭───┬───────────╮
│ 0 │ /home/joe │
│ 1 │ /home/doe │
╰───┴───────────╯

Walk up two levels

> '/home/joe/code/test.txt' | path dirname -n 2
/home/joe

Replace the part that would be returned with a custom path

> '/home/joe/code/test.txt' | path dirname -n 2 -r /home/viking
/home/viking/code/test.txt