261 lines
7.0 KiB
Groff
261 lines
7.0 KiB
Groff
.\" $OpenBSD: cp.1,v 1.41 2019/09/02 21:18:41 deraadt Exp $
|
|
.\" $NetBSD: cp.1,v 1.9 1995/07/25 19:36:45 jtc 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 $Mdocdate: September 2 2019 $
|
|
.Dt CP 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm cp
|
|
.Nd copy files
|
|
.Sh SYNOPSIS
|
|
.Nm cp
|
|
.Op Fl afipv
|
|
.Oo
|
|
.Fl R
|
|
.Op Fl H | L | P
|
|
.Oc
|
|
.Ar source target
|
|
.Nm cp
|
|
.Op Fl afipv
|
|
.Oo
|
|
.Fl R
|
|
.Op Fl H | L | P
|
|
.Oc
|
|
.Ar source ... 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 are copied to the destination
|
|
.Ar 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 options are as follows:
|
|
.Bl -tag -width Ds
|
|
.It Fl a
|
|
Archive mode.
|
|
Same as
|
|
.Fl RpP .
|
|
.It Fl f
|
|
For each existing destination pathname, remove it and
|
|
create a new file, without prompting for confirmation,
|
|
regardless of its permissions.
|
|
The
|
|
.Fl f
|
|
option overrides any previous
|
|
.Fl i
|
|
options.
|
|
.It Fl H
|
|
If the
|
|
.Fl R
|
|
option is also specified, symbolic links on the command line are followed.
|
|
Symbolic links encountered in the tree traversal are not followed.
|
|
.It Fl i
|
|
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.
|
|
The
|
|
.Fl i
|
|
option overrides any previous
|
|
.Fl f
|
|
options.
|
|
.It Fl L
|
|
If the
|
|
.Fl R
|
|
option is also specified, all symbolic links are followed.
|
|
.It Fl P
|
|
If the
|
|
.Fl R
|
|
option is also specified, no symbolic links are followed.
|
|
.It Fl p
|
|
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 nor set-group-ID bits are preserved in the copy's
|
|
permissions.
|
|
.It Fl R
|
|
If
|
|
.Ar source
|
|
designates a directory,
|
|
.Nm
|
|
copies the directory and the entire subtree connected at that point.
|
|
Created directories have the same mode as the corresponding source
|
|
directory, unmodified by the process's umask.
|
|
.Pp
|
|
This option also causes symbolic links to be copied, rather than
|
|
followed, and
|
|
special files to be created, rather than being copied as normal files.
|
|
However,
|
|
.Nm
|
|
copies hard linked files as separate files.
|
|
To preserve hard links,
|
|
use a utility such as
|
|
.Xr pax 1
|
|
or
|
|
.Xr tar 1
|
|
instead.
|
|
.It Fl v
|
|
Display the source and destination after each copy.
|
|
.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,
|
|
the destination specified by the
|
|
.Ar directory
|
|
operand must exist unless there is only one named
|
|
.Ar source
|
|
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
|
|
When a file containing large blocks of zero-valued bytes is copied,
|
|
.Nm
|
|
will attempt to create a sparse file.
|
|
.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
|
|
.Ex -std cp
|
|
.Sh EXAMPLES
|
|
Make a copy of file
|
|
.Pa foo
|
|
named
|
|
.Pa bar :
|
|
.Pp
|
|
.Dl $ cp foo bar
|
|
.Pp
|
|
Copy a group of files to the
|
|
.Pa /tmp
|
|
directory:
|
|
.Pp
|
|
.Dl $ cp *.txt /tmp
|
|
.Pp
|
|
Copy the directory
|
|
.Pa junk
|
|
and all of its contents (including any subdirectories) to the
|
|
.Pa /tmp
|
|
directory:
|
|
.Pp
|
|
.Dl $ cp -R junk /tmp
|
|
.Sh SEE ALSO
|
|
.Xr mv 1 ,
|
|
.Xr umask 2 ,
|
|
.Xr fts_open 3 ,
|
|
.Xr symlink 7
|
|
.Sh STANDARDS
|
|
The
|
|
.Nm
|
|
utility is compliant with the
|
|
.St -p1003.1-2008
|
|
specification.
|
|
.Pp
|
|
The flags
|
|
.Op Fl av
|
|
are extensions to that specification.
|
|
.Pp
|
|
Historic versions of the
|
|
.Nm
|
|
utility had an
|
|
.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 FIFOs.
|
|
.Sh HISTORY
|
|
A
|
|
.Nm
|
|
command appeared in
|
|
.At v1 .
|