dirname
Page Module:Infobox/styles.css has no content.
| dirname | |
|---|---|
| [[Programmer|DeveloperTemplate:Pluralize from text]] | Various open-source and commercial developers |
| Written in | C |
| Operating system | Unix, Unix-like, IBM i |
| Platform | Cross-platform |
| Type | Command |
| License | coreutils: GPLv3+ |
| Website | Script error: No such module "WikidataIB". |
Script error: No such module "Check for conflicting parameters".
dirname is a shell command for extracting the directory path portion of a path, without the last name. The command is specified in the Single UNIX Specification and is primarily used in shell scripts.
The version in GNU Core Utilities was written by David MacKenzie and Jim Meyering.[1] The command is available for Windows as part of the GnuWin32 project[2] and UnxUtils[3] and is in IBM i.[4]
Usage
The Single UNIX Specification is: dirname path. The required argument, path, is a file path string.
Examples
The command reports the directory path portion of a path ignoring any trailing slashes.
$ dirname /path/to/filename.ext
/path/to
$ dirname /path/to/
/path
$ dirname filename.ext
.
Performance
Since the command accepts only one operand, its usage within the inner loop of a shell script can be detrimental to performance. Consider:
while read file; do
dirname "$file"
done < some-input
The above causes a separate process invocation for each line of input. For this reason, shell substitution is typically used instead:
echo "${file%/*}";
Or, if relative pathnames need to be handled as well:
if [ -n "${file##*/*}" ]; then
echo "."
else
echo "${file%/*}";
fi
Note that these handle trailing slashes differently than dirname.
See also
References
Page Template:Reflist/styles.css has no content.
- ^ Template:Man
- ^ Page Module:Citation/CS1/styles.css has no content."CoreUtils for Windows". Archived from the original on 2025-07-30. Retrieved 2026-02-03.
- ^ Page Module:Citation/CS1/styles.css has no content."Native Win32 ports of some GNU utilities". Archived from the original on 2006-02-09. Retrieved 2022-02-23.
- ^ Page Module:Citation/CS1/styles.css has no content.IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM. Archived (PDF) from the original on 2020-09-18. Retrieved 2020-09-05.
External links
Page Module:Side box/styles.css has no content.Page Template:Sister project/styles.css has no content.
Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found. Template:Core Utilities commands