summaryrefslogtreecommitdiffstats
path: root/man1p/basename.1p
diff options
context:
space:
mode:
Diffstat (limited to 'man1p/basename.1p')
-rw-r--r--man1p/basename.1p239
1 files changed, 239 insertions, 0 deletions
diff --git a/man1p/basename.1p b/man1p/basename.1p
new file mode 100644
index 000000000..f8956e4e3
--- /dev/null
+++ b/man1p/basename.1p
@@ -0,0 +1,239 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "BASENAME" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" basename
+.SH NAME
+basename \- return non-directory portion of a pathname
+.SH SYNOPSIS
+.LP
+\fBbasename\fP \fIstring\fP \fB[\fP\fIsuffix\fP\fB]\fP
+.SH DESCRIPTION
+.LP
+The \fIstring\fP operand shall be treated as a pathname, as defined
+in the Base Definitions volume of
+IEEE\ Std\ 1003.1-2001, Section 3.266, Pathname. The string
+\fIstring\fP shall be converted to the filename corresponding to the
+last pathname component in \fIstring\fP and then the suffix
+string \fIsuffix\fP, if present, shall be removed. This shall be done
+by performing actions equivalent to the following steps in
+order:
+.IP " 1." 4
+If \fIstring\fP is a null string, it is unspecified whether the resulting
+string is \fB'.'\fP or a null string. In either
+case, skip steps 2 through 6.
+.LP
+.IP " 2." 4
+If \fIstring\fP is \fB"//"\fP , it is implementation-defined whether
+steps 3 to 6 are skipped or processed.
+.LP
+.IP " 3." 4
+If \fIstring\fP consists entirely of slash characters, \fIstring\fP
+shall be set to a single slash character. In this case,
+skip steps 4 to 6.
+.LP
+.IP " 4." 4
+If there are any trailing slash characters in \fIstring\fP, they shall
+be removed.
+.LP
+.IP " 5." 4
+If there are any slash characters remaining in \fIstring\fP, the prefix
+of \fIstring\fP up to and including the last slash
+character in \fIstring\fP shall be removed.
+.LP
+.IP " 6." 4
+If the \fIsuffix\fP operand is present, is not identical to the characters
+remaining in \fIstring\fP, and is identical to a
+suffix of the characters remaining in \fIstring\fP, the suffix \fIsuffix\fP
+shall be removed from \fIstring\fP. Otherwise,
+\fIstring\fP is not modified by this step. It shall not be considered
+an error if \fIsuffix\fP is not found in \fIstring\fP.
+.LP
+.LP
+The resulting string shall be written to standard output.
+.SH OPTIONS
+.LP
+None.
+.SH OPERANDS
+.LP
+The following operands shall be supported:
+.TP 7
+\fIstring\fP
+A string.
+.TP 7
+\fIsuffix\fP
+A string.
+.sp
+.SH STDIN
+.LP
+Not used.
+.SH INPUT FILES
+.LP
+None.
+.SH ENVIRONMENT VARIABLES
+.LP
+The following environment variables shall affect the execution of
+\fIbasename\fP:
+.TP 7
+\fILANG\fP
+Provide a default value for the internationalization variables that
+are unset or null. (See the Base Definitions volume of
+IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
+for
+the precedence of internationalization variables used to determine
+the values of locale categories.)
+.TP 7
+\fILC_ALL\fP
+If set to a non-empty string value, override the values of all the
+other internationalization variables.
+.TP 7
+\fILC_CTYPE\fP
+Determine the locale for the interpretation of sequences of bytes
+of text data as characters (for example, single-byte as
+opposed to multi-byte characters in arguments).
+.TP 7
+\fILC_MESSAGES\fP
+Determine the locale that should be used to affect the format and
+contents of diagnostic messages written to standard
+error.
+.TP 7
+\fINLSPATH\fP
+Determine the location of message catalogs for the processing of \fILC_MESSAGES
+\&.\fP
+.sp
+.SH ASYNCHRONOUS EVENTS
+.LP
+Default.
+.SH STDOUT
+.LP
+The \fIbasename\fP utility shall write a line to the standard output
+in the following format:
+.sp
+.RS
+.nf
+
+\fB"%s\\n", <\fP\fIresulting string\fP\fB>
+\fP
+.fi
+.RE
+.SH STDERR
+.LP
+The standard error shall be used only for diagnostic messages.
+.SH OUTPUT FILES
+.LP
+None.
+.SH EXTENDED DESCRIPTION
+.LP
+None.
+.SH EXIT STATUS
+.LP
+The following exit values shall be returned:
+.TP 7
+\ 0
+Successful completion.
+.TP 7
+>0
+An error occurred.
+.sp
+.SH CONSEQUENCES OF ERRORS
+.LP
+Default.
+.LP
+\fIThe following sections are informative.\fP
+.SH APPLICATION USAGE
+.LP
+The definition of \fIpathname\fP specifies implementation-defined
+behavior for pathnames starting with two slash characters.
+Therefore, applications shall not arbitrarily add slashes to the beginning
+of a pathname unless they can ensure that there are more
+or less than two or are prepared to deal with the implementation-defined
+consequences.
+.SH EXAMPLES
+.LP
+If the string \fIstring\fP is a valid pathname:
+.sp
+.RS
+.nf
+
+\fB$(basename "\fP\fIstring\fP\fB")
+\fP
+.fi
+.RE
+.LP
+produces a filename that could be used to open the file named by \fIstring\fP
+in the directory returned by:
+.sp
+.RS
+.nf
+
+\fB$(dirname "\fP\fIstring\fP\fB")
+\fP
+.fi
+.RE
+.LP
+If the string \fIstring\fP is not a valid pathname, the same algorithm
+is used, but the result need not be a valid filename.
+The \fIbasename\fP utility is not expected to make any judgements
+about the validity of \fIstring\fP as a pathname; it just
+follows the specified algorithm to produce a result string.
+.LP
+The following shell script compiles \fB/usr/src/cmd/cat.c\fP and moves
+the output to a file named \fBcat\fP in the current
+directory when invoked with the argument \fB/usr/src/cmd/cat\fP or
+with the argument \fB/usr/src/cmd/cat.c\fP:
+.sp
+.RS
+.nf
+
+\fBc99 $(dirname "$1")/$(basename "$1" .c).c
+mv a.out $(basename "$1" .c)
+\fP
+.fi
+.RE
+.SH RATIONALE
+.LP
+The behaviors of \fIbasename\fP and \fIdirname\fP have been coordinated
+so that when
+\fIstring\fP is a valid pathname:
+.sp
+.RS
+.nf
+
+\fB$(basename "\fP\fIstring\fP\fB")
+\fP
+.fi
+.RE
+.LP
+would be a valid filename for the file in the directory:
+.sp
+.RS
+.nf
+
+\fB$(dirname "\fP\fIstring\fP\fB")
+\fP
+.fi
+.RE
+.LP
+This would not work for the early proposal versions of these utilities
+due to the way it specified handling of trailing
+slashes.
+.LP
+Since the definition of \fIpathname\fP specifies implementation-defined
+behavior for pathnames starting with two slash
+characters, this volume of IEEE\ Std\ 1003.1-2001 specifies similar
+implementation-defined behavior for the \fIbasename\fP
+and \fIdirname\fP utilities.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIParameters and Variables\fP , \fIdirname\fP()
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .