POSIX only specifies the -H, -L, and -P options for use with -R, and the default is left to the implementation. Without -R, symlinks must be followed. Most implementations use -P as the default with -R, which makes sense to me as default behavior (the source and destination trees are the same). Since we use the same code for -R and without it, and we allow -H, -L, and -P without -R, set the default based on the presence of -R. Without it, use -L as before, as required by POSIX, and with it, use -P to match the behavior of other implementations.
75 lines
1.1 KiB
Groff
75 lines
1.1 KiB
Groff
.Dd 2015-10-08
|
|
.Dt CP 1
|
|
.Os sbase
|
|
.Sh NAME
|
|
.Nm cp
|
|
.Nd copy files and directories
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl afpv
|
|
.Oo
|
|
.Fl R
|
|
.Op Fl H | L | P
|
|
.Oc
|
|
.Ar source ...
|
|
.Ar dest
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
copies
|
|
.Ar source
|
|
to
|
|
.Ar dest .
|
|
If more than one
|
|
.Ar source
|
|
is given
|
|
.Ar dest
|
|
has to be a directory.
|
|
.Sh OPTIONS
|
|
.Bl -tag -width Ds
|
|
.It Fl a
|
|
Preserve block devices, character devices, sockets and FIFOs. Implies
|
|
.Fl p ,
|
|
.Fl P
|
|
and
|
|
.Fl R .
|
|
.It Fl f
|
|
If an existing
|
|
.Ar dest
|
|
cannot be opened, remove it and try again.
|
|
.It Fl p
|
|
Preserve mode, timestamp and permissions.
|
|
.It Fl v
|
|
Write "'source' -> 'dest'" for each
|
|
.Ar source
|
|
to stdout.
|
|
.It Fl H
|
|
Dereference
|
|
.Ar source
|
|
if it is a symbolic link.
|
|
.It Fl L
|
|
Dereference all symbolic links.
|
|
This is the default without
|
|
.Fl R .
|
|
.It Fl P
|
|
Preserve symbolic links.
|
|
This is the default with
|
|
.Fl R .
|
|
.It Fl R
|
|
Traverse directories recursively. If this flag is not specified, directories
|
|
are not copied.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr mv 1
|
|
.Sh STANDARDS
|
|
The
|
|
.Nm
|
|
utility is compliant with the
|
|
.St -p1003.1-2013
|
|
specification except from the
|
|
.Op Fl i
|
|
flag.
|
|
.Pp
|
|
The
|
|
.Op Fl av
|
|
flags are an extension to that specification.
|