Cannabaceae

dirname
Developer(s)Various open-source and commercial developers
Operating systemUnix, Unix-like, IBM i
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3+

dirname is a standard computer program on Unix and Unix-like operating systems. When dirname is given a pathname, it will delete any suffix beginning with the last slash ('/') character and return the result. dirname is described in the Single UNIX Specification and is primarily used in shell scripts.

History[edit]

The version of dirname bundled in GNU coreutils was written by David MacKenzie and Jim Meyering.[1] The command is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[2] The dirname command has also been ported to the IBM i operating system.[3]

Usage[edit]

The Single UNIX Specification for dirname is:

dirname string
string
A pathname

$ dirname /home/martin/docs/base.wiki /home/martin/docs

$ dirname /home/martin/docs/. /home/martin/docs $ dirname /home/martin/docs/ /home/martin $ dirname base.wiki . $ dirname / /

Performance[edit]

Since dirname accepts only one operand, its usage within the inner loop of shell scripts can be detrimental to performance. Consider

 while read file; do
     dirname "$file"
 done < some-input

The above excerpt would cause 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.

Misconceptions[edit]

We might think that paths that end in a trailing slash are a directory. But actually, the trailing slash represents all files within the directory.

/home/martin/docs/.

The correct way to represent a path as a directory is with a trailing slash and a period.[according to whom?][citation needed]

See also[edit]

References[edit]

  1. ^ "Dirname(1) - Linux man page".
  2. ^ "Native Win32 ports of some GNU utilities". unxutils.sourceforge.net.
  3. ^ 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[edit]

One thought on “Cannabaceae

  1. Well, that’s interesting to know that Psilotum nudum are known as whisk ferns. Psilotum nudum is the commoner species of the two. While the P. flaccidum is a rare species and is found in the tropical islands. Both the species are usually epiphytic in habit and grow upon tree ferns. These species may also be terrestrial and grow in humus or in the crevices of the rocks.
    View the detailed Guide of Psilotum nudum: Detailed Study Of Psilotum Nudum (Whisk Fern), Classification, Anatomy, Reproduction

Leave a Reply