diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /upstream/mageia-cauldron/man1p/cd.1p | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/mageia-cauldron/man1p/cd.1p')
-rw-r--r-- | upstream/mageia-cauldron/man1p/cd.1p | 509 |
1 files changed, 509 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man1p/cd.1p b/upstream/mageia-cauldron/man1p/cd.1p new file mode 100644 index 00000000..d73874f5 --- /dev/null +++ b/upstream/mageia-cauldron/man1p/cd.1p @@ -0,0 +1,509 @@ +'\" et +.TH CD "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 +cd +\(em change the working directory +.SH SYNOPSIS +.LP +.nf +cd \fB[\fR-L|-P\fB] [\fIdirectory\fB]\fR +.P +cd - +.fi +.SH DESCRIPTION +The +.IR cd +utility shall change the working directory of the current shell +execution environment (see +.IR "Section 2.12" ", " "Shell Execution Environment") +by executing the following steps in sequence. (In the following steps, +the symbol +.BR curpath +represents an intermediate value used to simplify the description of +the algorithm used by +.IR cd . +There is no requirement that +.BR curpath +be made visible to the application.) +.IP " 1." 4 +If no +.IR directory +operand is given and the +.IR HOME +environment variable is empty or undefined, the default behavior is +implementation-defined and no further steps shall be taken. +.IP " 2." 4 +If no +.IR directory +operand is given and the +.IR HOME +environment variable is set to a non-empty value, the +.IR cd +utility shall behave as if the directory named in the +.IR HOME +environment variable was specified as the +.IR directory +operand. +.IP " 3." 4 +If the +.IR directory +operand begins with a +<slash> +character, set +.BR curpath +to the operand and proceed to step 7. +.IP " 4." 4 +If the first component of the +.IR directory +operand is dot or dot-dot, proceed to step 6. +.IP " 5." 4 +Starting with the first pathname in the +<colon>-separated +pathnames of +.IR CDPATH +(see the ENVIRONMENT VARIABLES section) if the pathname is non-null, +test if the concatenation of that pathname, a +<slash> +character if that pathname did not end with a +<slash> +character, and the +.IR directory +operand names a directory. If the pathname is null, test if the +concatenation of dot, a +<slash> +character, and the operand names a directory. In either case, if the +resulting string names an existing directory, set +.BR curpath +to that string and proceed to step 7. Otherwise, repeat this step with +the next pathname in +.IR CDPATH +until all pathnames have been tested. +.IP " 6." 4 +Set +.BR curpath +to the +.IR directory +operand. +.IP " 7." 4 +If the +.BR \-P +option is in effect, proceed to step 10. If +.BR curpath +does not begin with a +<slash> +character, set +.BR curpath +to the string formed by the concatenation of the value of +.IR PWD , +a +<slash> +character if the value of +.IR PWD +did not end with a +<slash> +character, and +.BR curpath . +.IP " 8." 4 +The +.BR curpath +value shall then be converted to canonical form as follows, considering +each component from beginning to end, in sequence: +.RS 4 +.IP " a." 4 +Dot components and any +<slash> +characters that separate them from the next component shall be deleted. +.IP " b." 4 +For each dot-dot component, if there is a preceding component and it is +neither root nor dot-dot, then: +.RS 4 +.IP " i." 5 +If the preceding component does not refer (in the context of pathname +resolution with symbolic links followed) to a directory, then the +.IR cd +utility shall display an appropriate error message and no further steps +shall be taken. +.IP ii. 5 +The preceding component, all +<slash> +characters separating the preceding component from dot-dot, dot-dot, +and all +<slash> +characters separating dot-dot from the following component (if any) +shall be deleted. +.RE +.IP " c." 4 +An implementation may further simplify +.BR curpath +by removing any trailing +<slash> +characters that are not also leading +<slash> +characters, replacing multiple non-leading consecutive +<slash> +characters with a single +<slash>, +and replacing three or more leading +<slash> +characters with a single +<slash>. +If, as a result of this canonicalization, the +.BR curpath +variable is null, no further steps shall be taken. +.RE +.IP " 9." 4 +If +.BR curpath +is longer than +{PATH_MAX} +bytes (including the terminating null) and the +.IR directory +operand was not longer than +{PATH_MAX} +bytes (including the terminating null), then +.BR curpath +shall be converted from an absolute pathname to an equivalent relative +pathname if possible. This conversion shall always be considered +possible if the value of +.IR PWD , +with a trailing +<slash> +added if it does not already have one, is an initial substring of +.BR curpath . +Whether or not it is considered possible under other circumstances is +unspecified. Implementations may also apply this conversion if +.BR curpath +is not longer than +{PATH_MAX} +bytes or the +.IR directory +operand was longer than +{PATH_MAX} +bytes. +.IP 10. 4 +The +.IR cd +utility shall then perform actions equivalent to the +\fIchdir\fR() +function called with +.BR curpath +as the +.IR path +argument. If these actions fail for any reason, the +.IR cd +utility shall display an appropriate error message and the remainder of +this step shall not be executed. If the +.BR \-P +option is not in effect, the +.IR PWD +environment variable shall be set to the value that +.BR curpath +had on entry to step 9 (i.e., before conversion to a relative +pathname). If the +.BR \-P +option is in effect, the +.IR PWD +environment variable shall be set to the string that would be output by +.IR pwd +.BR \-P . +If there is insufficient permission on the new directory, or on any +parent of that directory, to determine the current working directory, +the value of the +.IR PWD +environment variable is unspecified. +.P +If, during the execution of the above steps, the +.IR PWD +environment variable +is set, the +.IR OLDPWD +environment variable shall also be set to +the value of the old working directory (that is the current working +directory immediately prior to the call to +.IR cd ). +.SH OPTIONS +The +.IR cd +utility shall conform to the Base Definitions volume of POSIX.1\(hy2017, +.IR "Section 12.2" ", " "Utility Syntax Guidelines". +.P +The following options shall be supported by the implementation: +.IP "\fB\-L\fP" 10 +Handle the operand dot-dot logically; symbolic link components shall +not be resolved before dot-dot components are processed (see steps 8. +and 9. in the DESCRIPTION). +.IP "\fB\-P\fP" 10 +Handle the operand dot-dot physically; symbolic link components shall +be resolved before dot-dot components are processed (see step 7. in the +DESCRIPTION). +.P +If both +.BR \-L +and +.BR \-P +options are specified, the last of these options shall be used and all +others ignored. If neither +.BR \-L +nor +.BR \-P +is specified, the operand shall be handled dot-dot logically; see the +DESCRIPTION. +.SH OPERANDS +The following operands shall be supported: +.IP "\fIdirectory\fR" 10 +An absolute or relative pathname of the directory that shall become +the new working directory. The interpretation of a relative pathname +by +.IR cd +depends on the +.BR \-L +option and the +.IR CDPATH +and +.IR PWD +environment variables. If +.IR directory +is an empty string, the results are unspecified. +.IP "\-" 10 +When a +<hyphen-minus> +is used as the operand, this shall be equivalent to the command: +.RS 10 +.sp +.RS 4 +.nf + +cd "$OLDPWD" && pwd +.fi +.P +.RE +.P +which changes to the previous working directory and then writes its +name. +.RE +.SH STDIN +Not used. +.SH "INPUT FILES" +None. +.SH "ENVIRONMENT VARIABLES" +The following environment variables shall affect the execution of +.IR cd : +.IP "\fICDPATH\fP" 10 +A +<colon>-separated +list of pathnames that refer to directories. The +.IR cd +utility shall use this list in its attempt to change the directory, as +described in the DESCRIPTION. An empty string in place of a directory +pathname represents the current directory. If +.IR CDPATH +is not set, it shall be treated as if it were an empty string. +.IP "\fIHOME\fP" 10 +The name of the directory, used when no +.IR directory +operand is specified. +.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 . +.IP "\fIOLDPWD\fP" 10 +A pathname of the previous working directory, used by +.IR cd +.BR \- . +.IP "\fIPWD\fP" 10 +This variable shall be set as specified in the DESCRIPTION. If an +application sets or unsets the value of +.IR PWD , +the behavior of +.IR cd +is unspecified. +.SH "ASYNCHRONOUS EVENTS" +Default. +.SH STDOUT +If a non-empty directory name from +.IR CDPATH +is used, or if +.IR cd +.BR \- +is used, an absolute pathname of the new working directory shall be +written to the standard output as follows: +.sp +.RS 4 +.nf + +"%s\en", <\fInew directory\fR> +.fi +.P +.RE +.P +Otherwise, there shall be no output. +.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 +The directory was successfully changed. +.IP >0 6 +An error occurred. +.SH "CONSEQUENCES OF ERRORS" +The working directory shall remain unchanged. +.LP +.IR "The following sections are informative." +.SH "APPLICATION USAGE" +Since +.IR cd +affects the current shell execution environment, it is always provided +as a shell regular built-in. If it is called in a subshell or separate +utility execution environment, such as one of the following: +.sp +.RS 4 +.nf + +(cd /tmp) +nohup cd +find . -exec cd {} \e; +.fi +.P +.RE +.P +it does not affect the working directory of the caller's environment. +.P +The user must have execute (search) permission in +.IR directory +in order to change to it. +.SH EXAMPLES +The following template can be used to perform processing in the directory +specified by +.IR location +and end up in the current working directory in use before the first +.IR cd +command was issued: +.sp +.RS 4 +.nf + +cd \fIlocation\fP +if [ $? -ne 0 ] +then + print error message + exit 1 +fi +\&... do whatever is desired as long as the OLDPWD environment variable + is not modified +cd - +.fi +.P +.RE +.SH RATIONALE +The use of the +.IR CDPATH +was introduced in the System V shell. Its use is analogous to the use +of the +.IR PATH +variable in the shell. The BSD C shell used a shell parameter +.IR cdpath +for this purpose. +.P +A common extension when +.IR HOME +is undefined is to get the login directory from the user database for +the invoking user. This does not occur on System V implementations. +.P +Some historical shells, such as the KornShell, took special actions +when the directory name contained a dot-dot component, selecting the +logical parent of the directory, rather than the actual parent +directory; that is, it moved up one level toward the +.BR '/' +in the pathname, remembering what the user typed, rather than +performing the equivalent of: +.sp +.RS 4 +.nf + +chdir(".."); +.fi +.P +.RE +.P +In such a shell, the following commands would not necessarily produce +equivalent output for all directories: +.sp +.RS 4 +.nf + +cd .. && ls ls .. +.fi +.P +.RE +.P +This behavior is now the default. It is not consistent with the +definition of dot-dot in most historical practice; that is, while this +behavior has been optionally available in the KornShell, other shells +have historically not supported this functionality. The logical +pathname is stored in the +.IR PWD +environment variable when the +.IR cd +utility completes and this value is used to construct the next +directory name if +.IR cd +is invoked with the +.BR \-L +option. +.SH "FUTURE DIRECTIONS" +None. +.SH "SEE ALSO" +.IR "Section 2.12" ", " "Shell Execution Environment", +.IR "\fIpwd\fR\^" +.P +The Base Definitions volume of POSIX.1\(hy2017, +.IR "Chapter 8" ", " "Environment Variables", +.IR "Section 12.2" ", " "Utility Syntax Guidelines" +.P +The System Interfaces volume of POSIX.1\(hy2017, +.IR "\fIchdir\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 . |