---
name: "dirname"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/dirname"
---

# dirname(1)

return directory portion of pathname

## NAME

**dirname** – return directory portion of pathname

## SYNOPSIS

**dirname** *pathname*

## DESCRIPTION

**dirname** deletes the filename portion, beginning with the last slash (‘/’) character to the end of *pathname*, and writes the result to the standard output.

## EXIT STATUS

The **dirname** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

The following line sets the shell variable FOO to */usr/bin*:

```
FOO=`dirname /usr/bin/tail`
```

## SEE ALSO

[basename(1)](/basename/1.md), [csh(1)](/csh/1.md), [sh(1)](/sh/1.md), [dirname(3)](/dirname/3.md)

## STANDARDS

The **dirname** utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification.

## HISTORY

The **dirname** utility first appeared as an [expr(1)](/expr/1.md) script in AT&T System III UNIX. It was reimplemented in C for 4.3BSD-Reno and reimplemented again using [dirname(3)](/dirname/3.md) for OpenBSD 2.2.

## AUTHORS

The original BSD version was written by Keith Bostic. The current OpenBSD version was written by Todd Miller ⟨*millert@openbsd.org*⟩.
