5bdae3836c
git-svn-id: svn+ssh://atelier.inf.usi.ch/home/bevilj/group-1@270 a672b425-5310-4d7a-af5c-997e18724b81
112 lines
5.5 KiB
HTML
112 lines
5.5 KiB
HTML
---
|
|
layout: page
|
|
category-page: fs
|
|
category-title: FileSystem
|
|
tags: directory list copy cp
|
|
author: Mattia Hijman
|
|
title: cp
|
|
previous-page: pages/fs/touch.html
|
|
---
|
|
|
|
In the first synopsis form, the cp utility copies the contents of the source_file to the target_file. <br>
|
|
In the second synopsis form, the contents of each named source_file is copied to the destination
|
|
target_directory. <br>
|
|
The names of the files themselves are not changed. If cp detects an attempt to copy a file to itself, the copy will fail. <br>
|
|
|
|
The following options are available:<br>
|
|
<ul>
|
|
|
|
<li> <b>-a</b>
|
|
|
|
Same as -pPR options. Preserves structure and attributes of files
|
|
but not directory structure.</li>
|
|
|
|
<li> <b>-f</b>
|
|
|
|
If the destination file cannot be opened, remove it and create a new file, without prompting for confirmation regardless of its permissions. (The -f option overrides any previous -n option.)
|
|
|
|
The target file is not unlinked before the copy. Thus, any existing access rights will be retained.</li>
|
|
|
|
<li> <b>-H</b>
|
|
|
|
If the -R option is specified, symbolic links on the command line are followed. </li>
|
|
|
|
<li> <b>-i</b> Cause cp 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 `y' or
|
|
`Y', the file copy is attempted.</li>
|
|
|
|
<li> <b>-L</b> If the -R option is specified, all symbolic links are followed.</li>
|
|
|
|
<li> <b>-n</b> Do not overwrite an existing file. </li>
|
|
<li> <b>-P </b> If the -R option is specified, no symbolic links are followed.
|
|
This is the default.</li>
|
|
|
|
<li> <b>-p</b> Cause cp to preserve the following attributes of each source file
|
|
in the copy: modification time, access time, file flags, file mode,
|
|
user ID, and group ID, as allowed by permissions. Access Control
|
|
Lists (ACLs) and Extended Attributes (EAs), including resource
|
|
forks, will also be preserved.
|
|
|
|
If the user ID and group ID cannot be preserved, no error message
|
|
is displayed and the exit value is not altered.
|
|
|
|
If the source file has its set-user-ID bit on and the user ID can-
|
|
not 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.</li>
|
|
|
|
<li> <b>-R</b> If source_file designates a directory, cp copies the directory and
|
|
the entire subtree connected at that point. If the source_file
|
|
ends in a /, the contents of the directory are copied rather than
|
|
the directory itself. This option also causes symbolic links to be
|
|
copied, rather than indirected through, and for cp to create spe-
|
|
cial files rather than copying them as normal files. Created
|
|
directories have the same mode as the corresponding source direc-
|
|
tory, unmodified by the process' umask.
|
|
|
|
In -R mode, cp will continue copying even if errors are detected.
|
|
|
|
Note that cp copies hard-linked files as separate files. If you
|
|
need to preserve hard links, consider using tar(1), cpio(1), or
|
|
pax(1) instead.</li>
|
|
|
|
<li> <b>-v</b> Cause cp to be verbose, showing files as they are copied.</li>
|
|
|
|
<li> <b>-X</b> Do not copy Extended Attributes (EAs) or resource forks.</li>
|
|
|
|
<li> <b>-c</b> copy files using clonefile(2)</li>
|
|
</ul>
|
|
|
|
For each destination file that already exists, its contents are overwrit-
|
|
ten if permissions allow. Its mode, user ID, and group ID are unchanged
|
|
unless the -p option was specified.
|
|
|
|
In the second synopsis form, target_directory must exist unless there is
|
|
only one named source_file which is a directory and the -R flag is speci-
|
|
fied.
|
|
|
|
If the destination file does not exist, the mode of the source file is
|
|
used as modified by the file mode creation mask (umask, see 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 ful-
|
|
filled or both bits are removed.
|
|
|
|
Appropriate permissions are required for file creation or overwriting.
|
|
|
|
Symbolic links are always followed unless the -R flag is set, in which
|
|
case symbolic links are not followed, by default. The -H or -L flags (in
|
|
conjunction with the -R flag) cause symbolic links to be followed as described above. The -H, -L and -P options are ignored unless the -R
|
|
option is specified. In addition, these options override each other and
|
|
the command's actions are determined by the last one specified.
|
|
|
|
If cp receives a SIGINFO (see the status argument for stty(1)) signal,
|
|
the current input and output file and the percentage complete will be
|
|
written to the standard output.
|