rcp(1) General Commands Manual rcp(1)
NAME
rcp - remote file copy
SYNOPSIS
Copy Single File
size] size] source_file1 dest_file
Copy Multiple Files
size] size] source_file1 [source_file2]... dest_dir
Copy One or More Directory Subtrees
size] size] source_dir1 [source_dir2]... dest_dir
Copy Files and Directory Subtrees
size] size] file_or_dir1 [file_or_dir2]... dest_dir
In Kerberos V5 Network Authentication Environments
Copy Single File
realm] size] size] source_file1 dest_file
Copy Multiple Files
realm] size] size] source_file1 [source_file2]... dest_dir
Copy One or More Directory Subtrees
realm] size] size] source_dir1 [source_dir2]... dest_dir
Copy Files and Directory Subtrees
realm] size] size] file_or_dir1 [file_or_dir2]... dest_dir
DESCRIPTION
The command copies files, directory subtrees, or a combination of files and directory subtrees from one or more systems to another. In
many respects, it is similar to the command (see cp(1)).
To use you must have read access to files being copied, and read and search (execute) permission on all directories in the directory path.
Note that there are special requirements for third-party transfers, which are described in the section below.
In a Kerberos V5 Network Authentication environment, uses the Kerberos V5 protocol while initiating the connection to a remote host. The
authorization mechanism is dependent on the command line options used to invoke on the remote host (i.e., Kerberos authentication and
authorization rules are described in the Secure Internet Services man page, sis(5).
Although Kerberos authentication and authorizations may apply, the Kerberos mechanism is not applied when copying files. The files are
still transferred in clear text over the network.
The option can be set in the file within Refer to the krb5.conf(4) manpage for more information on the If is set to true and the kerberos
authentication fails, will use the non-secure mode of authentication.
Note: Command line options override the configuration file options.
Options and Arguments
recognizes the following options and arguments:
source_file, source_dir
This option specifies the name of an existing file or directory on a local or remote machine that you want to be
copied to a specified destination. The source file and directory names are constructed as follows:
or
Component parts of file and directory names are described below. If multiple existing files and/or directory sub-
trees (source_file1, source_file2, ..., etc.) are specified, then the destination must be a directory. Shell file
name expansion is allowed on both local and remote systems. Multiple files and directory subtrees can be copied from
one or more systems to a single destination directory by using a single command.
dest_file This option specifies the name of the destination file. If host name and path name are not specified, then the
existing file is copied into a file named dest_file in the current directory on the local system. If dest_file
already exists and is writable, then the existing file is overwritten. The destination file names are constructed in
the same way as source files except that the usage of file name expansion characters is forbidden in the case of des-
tination file names.
dest_dir This option specifies the name of the destination directory. If host name and path names are not specified, then the
existing file is copied into a directory named dest_dir in the current directory on the local system. If dest_dir
already exists in the specified directory path (or current directory if not specified), then a new directory named
dest_dir is created underneath the existing directory named dest_dir. The destination directory names are con-
structed the in same way as source directory tree names except that the usage of file name expansion characters is
forbidden in the case of destination directory names.
If the source_dir has more than one file to be copied, the dest_dir does not exist, and if the option is used for
recursive copying, then first creates the dest_dir and later copies the files under the source_dir to the dest_dir.
file_or_dir If a combination of files and directories are specified for copying (either explicitly or by file name expansion),
then only files are copied unless the option is specified. If the option is present, then all the files and direc-
tory subtrees whose names match the specified file_or_dir name are copied.
This option is applicable only in a secure environment based on Kerberos V5.
It can be used to obtain tickets from the remote host in the specified realm instead of the remote host's default
realm as specified in the configuration file
This option is applicable only in a secure environment based on Kerberos V5.
It disables Kerberos authentication. If the remote host has been configured to prevent non-secure access, using this
option would result in the generic error,
See in remshd(1M) for more details.
This option can be used to preserve (duplicate) modification times and
modes (permissions) of source files, ignoring the current setting of the file creation mode mask. If this option is
specified, preserves the sticky bit only if the target user is superuser.
If the option is not specified, preserves the mode and owner of dest_file if it already exists; otherwise uses the
mode of the source file modified by the on the destination host. Modification and access times of the destination
file are set to the time when the copy was made.
This option sets the size of the socket send buffer.
This option sets the size of the socket receive buffer.
This option can be used to recursively copy directory subtrees
rooted at the source directory name. If any directory subtrees are to be copied, recursively copies each subtree
rooted at the specified source directory name to directory dest_dir. If source_dir is being copied to an existing
directory of the same name, creates a new directory source_dir within dest_dir and copies the subtree rooted at
source_dir to If dest_dir does not exist, first creates it and copies the subtree rooted at source_dir to dest_dir
and the output will be similar irrespective of whether a wildcard character (source_dir/*) is used for copying or
otherwise.
Constructing File and Directory Names
As indicated above, file and directory names contain one, two, or four component parts:
user_name Login name to be used for accessing directories and files on remote system.
hostname Hostname of remote system where directories and files are located.
pathname Absolute directory path name or directory path name relative to the login directory of user user_name.
filename Actual name of source or destination file. File name expansion is allowed on source file names.
dirname Actual name of source or destination directory subtree. File name expansion is allowed on source directory names.
Each file or directory argument is either a remote file name of the form or a local file name (with a slash before any colon hostname can
be either an official host name or an alias (see hosts(4)). If hostname is of the form ruser is used on the remote host instead of the
current user name. An unspecified path (that is, refers to the remote user's login directory. If path does not begin with it is inter-
preted relative to the remote user's login directory on hostname. Shell metacharacters in remote paths can be quoted with backslash single
quotes or double quotes (), so that they will be interpreted remotely.
does not prompt for passwords. In a non-secure or traditional environment, user authorization is checked by determining if the current
local user name or any user name specified via ruser exists on rhost. In a Kerberos V5 Network Authentication or secure environment, the
authorization method is dependent upon the command line options for (see remshd(1M) for details). In either case, remote command execution
via remsh(1) and rcmd(3N), or rcmd_af(3N) in case of IPv6 systems, must be allowed and remshd(1M) must be executable on the remote host.
Third-Party Transfers
Third-party transfers in the following form:
are performed as:
Therefore, for a such a transfer to succeed, ruser2 on rhost2 must allow access by ruser1 from rhost1 (see hosts.equiv(4)).
rcp With IPv6 Address
To invoke with an IPv6 address, the IPv6 address must be enclosed in a pair of square brackets as shown in the example below.
If the IPv6 address is not enclosed within square brackets, the first occurrence of a colon is treated as the separator between the host-
name and the path.
WARNINGS
The routine is confused by any output generated by commands in a file on the remote host (see csh(1)).
Copying a file onto itself, for example:
may produce inconsistent results. The current HP-UX version of simply copies the file over itself. However, some implementations of
including some earlier HP-UX implementations, corrupt the file. In addition, the same file may be referred to in multiple ways, for exam-
ple, via hard links, symbolic links, or NFS. It is not guaranteed that will correctly copy a file over itself in all cases.
Implementations of based on the 4.2BSD version (including the implementations of prior to HP-UX 7.0) require that remote users be specified
as rhost.ruser. If the first remote host specified in a third party transfer (rhost1 in the example below) uses this older syntax, the
command must have the form:
since the target is interpreted by rhost1. A common problem is encountered when two remote files are to be copied to a remote target that
specifies a remote user. If the two remote source systems, rhost1 and rhost2, each expect a different form for the remote target, the com-
mand:
will certainly fail on one of the source systems. Perform such a transfer using two separate commands.
With the existing implementation of the remote copy may result in a system overwrite as described in the following example.
In this example, if you run as root, and unintentionally type a space between the colon and the slash then assumes both path and (the
remote machine's root directory) as source. always interprets the last argument as the destination. Therefore, the destination directory
is the local machine's root directory copies the content of path to the root directory first. It then does another copy with as source to
the root directory again. This second copy overwrites the local system's root directory with the remote system's root directory
DIAGNOSTICS
Diagnostics can occur from both the local and remote hosts. Those diagnostics that occur on the local host before the connection is com-
pletely established are written to standard error. Once the connection is established, any error messages from the remote host are written
to standard output, like any other data.
There are two authentication mechanisms used by
One authentication mechanism is based on Kerberos and the other is not. The type of authentication mechanism is obtained from a
system file which is updated by inetsvcs_sec(1M). If the system file does not contain known authentication types, the above error
is displayed.
AUTHOR
was developed by the University of California, Berkeley.
SEE ALSO
cp(1), ftp(1), remsh(1), remshd(1M), inetsvcs_sec(1M), rcmd(3N), rcmd_af(3N), hosts(4), hosts.equiv(4), krb5.conf(4), sis(5).
rcp(1)