diff options
Diffstat (limited to 'man-pages-posix-2003/man1p/basename.1p')
-rw-r--r-- | man-pages-posix-2003/man1p/basename.1p | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man1p/basename.1p b/man-pages-posix-2003/man1p/basename.1p new file mode 100644 index 0000000..da024af --- /dev/null +++ b/man-pages-posix-2003/man1p/basename.1p @@ -0,0 +1,244 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "BASENAME" 1P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" basename +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.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 . |