b5b2954259
Patches provided by Joel Baker in PR 22249, verified by myself.
221 lines
6.4 KiB
Groff
221 lines
6.4 KiB
Groff
.\" $NetBSD: cp.1,v 1.24 2003/08/07 09:05:02 agc Exp $
|
|
.\"
|
|
.\" Copyright (c) 1989, 1990, 1993, 1994
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to Berkeley by
|
|
.\" the Institute of Electrical and Electronics Engineers, Inc.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)cp.1 8.3 (Berkeley) 4/18/94
|
|
.\"
|
|
.Dd December 18, 2002
|
|
.Dt CP 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm cp
|
|
.Nd copy files
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Oo
|
|
.Fl R
|
|
.Op Fl H | Fl L | Fl P
|
|
.Oc
|
|
.Op Fl f | i
|
|
.Op Fl pv
|
|
.Ar source_file target_file
|
|
.Nm cp
|
|
.Oo
|
|
.Fl R
|
|
.Op Fl H | Fl L | Fl P
|
|
.Oc
|
|
.Op Fl f | i
|
|
.Op Fl pv
|
|
.Ar source_file ... target_directory
|
|
.Sh DESCRIPTION
|
|
In the first synopsis form, the
|
|
.Nm
|
|
utility copies the contents of the
|
|
.Ar source_file
|
|
to the
|
|
.Ar target_file .
|
|
In the second synopsis form,
|
|
the contents of each named
|
|
.Ar source_file
|
|
is copied to the destination
|
|
.Ar target_directory .
|
|
The names of the files themselves are not changed.
|
|
If
|
|
.Nm
|
|
detects an attempt to copy a file to itself, the copy will fail.
|
|
.Pp
|
|
The following options are available:
|
|
.Bl -tag -width flag
|
|
.It Fl H
|
|
If the
|
|
.Fl R
|
|
option is specified, symbolic links on the command line are followed.
|
|
(Symbolic links encountered in the tree traversal are not followed.)
|
|
.It Fl L
|
|
If the
|
|
.Fl R
|
|
option is specified, all symbolic links are followed.
|
|
.It Fl P
|
|
If the
|
|
.Fl R
|
|
option is specified, no symbolic links are followed.
|
|
.It Fl R
|
|
If
|
|
.Ar source_file
|
|
designates a directory,
|
|
.Nm
|
|
copies the directory and the entire subtree connected at that point.
|
|
This option also causes symbolic links to be copied, rather than
|
|
indirected through, and for
|
|
.Nm
|
|
to create special files rather than copying them as normal files.
|
|
Created directories have the same mode as the corresponding source
|
|
directory, unmodified by the process' umask.
|
|
.It Fl f
|
|
For each existing destination pathname, attempt to overwrite it.
|
|
If permissions do not allow copy to succeed, remove it and create a new
|
|
file, without prompting for confirmation.
|
|
(The
|
|
.Fl i
|
|
option is ignored if the
|
|
.Fl f
|
|
option is specified.)
|
|
.It Fl i
|
|
Causes
|
|
.Nm
|
|
to write a prompt to the standard error output before copying a file
|
|
that would overwrite an existing file.
|
|
If the response from the standard input begins with the character
|
|
.Sq Li y ,
|
|
the file copy is attempted.
|
|
.It Fl p
|
|
Causes
|
|
.Nm
|
|
to preserve in the copy as many of the modification time, access time,
|
|
file flags, file mode, user ID, and group ID as allowed by permissions.
|
|
.Pp
|
|
If the user ID and group ID cannot be preserved, no error message
|
|
is displayed and the exit value is not altered.
|
|
.Pp
|
|
If the source file has its set user ID bit on and the user ID cannot
|
|
be preserved, the set user ID bit is not preserved
|
|
in the copy's permissions.
|
|
If the source file has its set group ID bit on and the group ID cannot
|
|
be preserved, the set group ID bit is not preserved
|
|
in the copy's permissions.
|
|
If the source file has both its set user ID and set group ID bits on,
|
|
and either the user ID or group ID cannot be preserved, neither
|
|
the set user ID or set group ID bits are preserved in the copy's
|
|
permissions.
|
|
.It Fl v
|
|
Cause
|
|
.Nm
|
|
to be verbose, showing files as they are copied.
|
|
.El
|
|
.Pp
|
|
For each destination file that already exists, its contents are
|
|
overwritten if permissions allow, but its mode, user ID, and group
|
|
ID are unchanged.
|
|
.Pp
|
|
In the second synopsis form,
|
|
.Ar target_directory
|
|
must exist unless there is only one named
|
|
.Ar source_file
|
|
which is a directory and the
|
|
.Fl R
|
|
flag is specified.
|
|
.Pp
|
|
If the destination file does not exist, the mode of the source file is
|
|
used as modified by the file mode creation mask
|
|
.Pf ( Ic umask ,
|
|
see
|
|
.Xr csh 1 ) .
|
|
If the source file has its set user ID bit on, that bit is removed
|
|
unless both the source file and the destination file are owned by the
|
|
same user.
|
|
If the source file has its set group ID bit on, that bit is removed
|
|
unless both the source file and the destination file are in the same
|
|
group and the user is a member of that group.
|
|
If both the set user ID and set group ID bits are set, all of the above
|
|
conditions must be fulfilled or both bits are removed.
|
|
.Pp
|
|
Appropriate permissions are required for file creation or overwriting.
|
|
.Pp
|
|
Symbolic links are always followed unless the
|
|
.Fl R
|
|
flag is set, in which case symbolic links are not followed, by default.
|
|
The
|
|
.Fl H
|
|
or
|
|
.Fl L
|
|
flags (in conjunction with the
|
|
.Fl R
|
|
flag) cause symbolic links to be followed as described above.
|
|
The
|
|
.Fl H ,
|
|
.Fl L
|
|
and
|
|
.Fl P
|
|
options are ignored unless the
|
|
.Fl R
|
|
option is specified.
|
|
In addition, these options override each other and the
|
|
command's actions are determined by the last one specified.
|
|
.Sh EXIT STATUS
|
|
.Nm
|
|
exits 0 on success, and \*[Gt]0 if an error occurred.
|
|
.Sh COMPATIBILITY
|
|
Historic versions of the
|
|
.Nm
|
|
utility had a
|
|
.Fl r
|
|
option.
|
|
This implementation supports that option, however, its use is strongly
|
|
discouraged, as it does not correctly copy special files, symbolic links
|
|
or fifo's.
|
|
.Sh SEE ALSO
|
|
.Xr mv 1 ,
|
|
.Xr rcp 1 ,
|
|
.Xr umask 2 ,
|
|
.Xr fts 3 ,
|
|
.Xr symlink 7
|
|
.Sh STANDARDS
|
|
The
|
|
.Nm
|
|
utility is expected to be
|
|
.St -p1003.2
|
|
compatible.
|
|
.Pp
|
|
The
|
|
.Fl v
|
|
option is an extension to
|
|
.St -p1003.2 .
|