summaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2017/man1p/basename.1p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2017/man1p/basename.1p')
-rw-r--r--man-pages-posix-2017/man1p/basename.1p309
1 files changed, 309 insertions, 0 deletions
diff --git a/man-pages-posix-2017/man1p/basename.1p b/man-pages-posix-2017/man1p/basename.1p
new file mode 100644
index 0000000..a641f62
--- /dev/null
+++ b/man-pages-posix-2017/man1p/basename.1p
@@ -0,0 +1,309 @@
+'\" et
+.TH BASENAME "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\"
+.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
+\(em return non-directory portion of a pathname
+.SH SYNOPSIS
+.LP
+.nf
+basename \fIstring \fB[\fIsuffix\fB]\fR
+.fi
+.SH DESCRIPTION
+The
+.IR string
+operand shall be treated as a pathname, as defined in the Base Definitions volume of POSIX.1\(hy2017,
+.IR "Section 3.271" ", " "Pathname".
+The string
+.IR string
+shall be converted to the filename corresponding to the last pathname
+component in
+.IR string
+and then the suffix string
+.IR suffix ,
+if present, shall be removed. This shall be done by performing actions
+equivalent to the following steps in order:
+.IP " 1." 4
+If
+.IR string
+is a null string, it is unspecified whether the resulting string is
+.BR '.'
+or a null string. In either case, skip steps 2 through 6.
+.IP " 2." 4
+If
+.IR string
+is
+.BR \(dq//\(dq ,
+it is implementation-defined whether steps 3 to 6 are skipped or
+processed.
+.IP " 3." 4
+If
+.IR string
+consists entirely of
+<slash>
+characters,
+.IR string
+shall be set to a single
+<slash>
+character. In this case, skip steps 4 to 6.
+.IP " 4." 4
+If there are any trailing
+<slash>
+characters in
+.IR string ,
+they shall be removed.
+.IP " 5." 4
+If there are any
+<slash>
+characters remaining in
+.IR string ,
+the prefix of
+.IR string
+up to and including the last
+<slash>
+character in
+.IR string
+shall be removed.
+.IP " 6." 4
+If the
+.IR suffix
+operand is present, is not identical to the characters remaining in
+.IR string ,
+and is identical to a suffix of the characters remaining in
+.IR string ,
+the suffix
+.IR suffix
+shall be removed from
+.IR string .
+Otherwise,
+.IR string
+is not modified by this step. It shall not be considered an error if
+.IR suffix
+is not found in
+.IR string .
+.P
+The resulting string shall be written to standard output.
+.SH OPTIONS
+None.
+.SH OPERANDS
+The following operands shall be supported:
+.IP "\fIstring\fR" 10
+A string.
+.IP "\fIsuffix\fR" 10
+A string.
+.SH STDIN
+Not used.
+.SH "INPUT FILES"
+None.
+.SH "ENVIRONMENT VARIABLES"
+The following environment variables shall affect the execution of
+.IR basename :
+.IP "\fILANG\fP" 10
+Provide a default value for the internationalization variables that are
+unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
+.IR "Section 8.2" ", " "Internationalization Variables"
+for the precedence of internationalization variables used to determine
+the values of locale categories.)
+.IP "\fILC_ALL\fP" 10
+If set to a non-empty string value, override the values of all the
+other internationalization variables.
+.IP "\fILC_CTYPE\fP" 10
+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).
+.IP "\fILC_MESSAGES\fP" 10
+.br
+Determine the locale that should be used to affect the format and
+contents of diagnostic messages written to standard error.
+.IP "\fINLSPATH\fP" 10
+Determine the location of message catalogs for the processing of
+.IR LC_MESSAGES .
+.SH "ASYNCHRONOUS EVENTS"
+Default.
+.SH STDOUT
+The
+.IR basename
+utility shall write a line to the standard output in the following
+format:
+.sp
+.RS 4
+.nf
+
+"%s\en", <\fIresulting string\fP>
+.fi
+.P
+.RE
+.SH STDERR
+The standard error shall be used only for diagnostic messages.
+.SH "OUTPUT FILES"
+None.
+.SH "EXTENDED DESCRIPTION"
+None.
+.SH "EXIT STATUS"
+The following exit values shall be returned:
+.IP "\00" 6
+Successful completion.
+.IP >0 6
+An error occurred.
+.SH "CONSEQUENCES OF ERRORS"
+Default.
+.LP
+.IR "The following sections are informative."
+.SH "APPLICATION USAGE"
+The definition of
+.IR pathname
+specifies implementation-defined behavior for pathnames starting with
+two
+<slash>
+characters. Therefore, applications shall not arbitrarily add
+<slash>
+characters 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
+If the string
+.IR string
+is a valid pathname:
+.sp
+.RS 4
+.nf
+
+$(basename -- "\fIstring\fP")
+.fi
+.P
+.RE
+.P
+produces a filename that could be used to open the file named by
+.IR string
+in the directory returned by:
+.sp
+.RS 4
+.nf
+
+$(dirname -- "\fIstring\fP")
+.fi
+.P
+.RE
+.P
+If the string
+.IR string
+is not a valid pathname, the same algorithm is used, but the result
+need not be a valid filename. The
+.IR basename
+utility is not expected to make any judgements about the validity of
+.IR string
+as a pathname; it just follows the specified algorithm to produce a
+result string.
+.P
+The following shell script compiles
+.BR /usr/src/cmd/cat.c
+and moves the output to a file named
+.BR cat
+in the current directory when invoked with the argument
+.BR /usr/src/cmd/cat
+or with the argument
+.BR /usr/src/cmd/cat.c :
+.sp
+.RS 4
+.nf
+
+c99 -- "$(dirname -- "$1")/$(basename -- "$1" .c).c" &&
+mv a.out "$(basename -- "$1" .c)"
+.fi
+.P
+.RE
+.P
+The EXAMPLES section of the
+\fIbasename\fR()
+function (see the System Interfaces volume of POSIX.1\(hy2017,
+.IR "\fIbasename\fR\^(\|)")
+includes a table showing examples of the results of processing several
+sample pathnames by the
+\fIbasename\fR()
+and
+\fIdirname\fR()
+functions and by the
+.IR basename
+and
+.IR dirname
+utilities.
+.SH RATIONALE
+The behaviors of
+.IR basename
+and
+.IR dirname
+have been coordinated so that when
+.IR string
+is a valid pathname:
+.sp
+.RS 4
+.nf
+
+$(basename -- "\fIstring\fP")
+.fi
+.P
+.RE
+.P
+would be a valid filename for the file in the directory:
+.sp
+.RS 4
+.nf
+
+$(dirname -- "\fIstring\fP")
+.fi
+.P
+.RE
+.P
+This would not work for the early proposal versions of these utilities due
+to the way it specified handling of trailing
+<slash>
+characters.
+.P
+Since the definition of
+.IR pathname
+specifies implementation-defined behavior for pathnames starting with
+two
+<slash>
+characters, this volume of POSIX.1\(hy2017 specifies similar implementation-defined behavior
+for the
+.IR basename
+and
+.IR dirname
+utilities.
+.SH "FUTURE DIRECTIONS"
+None.
+.SH "SEE ALSO"
+.IR "Section 2.5" ", " "Parameters and Variables",
+.IR "\fIdirname\fR\^"
+.P
+The Base Definitions volume of POSIX.1\(hy2017,
+.IR "Section 3.271" ", " "Pathname",
+.IR "Chapter 8" ", " "Environment Variables"
+.P
+The System Interfaces volume of POSIX.1\(hy2017,
+.IR "\fIbasename\fR\^(\|)",
+.IR "\fIdirname\fR\^(\|)"
+.\"
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1-2017, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 7, 2018 Edition,
+Copyright (C) 2018 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 .
+.PP
+Any typographical or formatting errors that appear
+in this page are most likely
+to have been introduced during the conversion of the source files to
+man page format. To report such errors, see
+https://www.kernel.org/doc/man-pages/reporting_bugs.html .