Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > R

rcp(1)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

rcp — remote file copy

SYNOPSIS

Copy Single File

rcp [-p] [-S size] [-R size] source_file1 dest_file

Copy Multiple Files

rcp [-p] [-S size] [-R size] source_file1 [source_file2]... dest_dir

Copy One or More Directory Subtrees

rcp [-p] [-S size] [-R size] -r source_dir1 [source_dir2]... dest_dir

Copy Files and Directory Subtrees

rcp [-p] [-S size] [-R size] -r file_or_dir1 [file_or_dir2]... dest_dir

In Kerberos V5 Network Authentication Environments

Copy Single File

rcp [-k realm] [-P] [-p] [-S size] [-R size] source_file1 dest_file

Copy Multiple Files

rcp [-k realm] [-P] [-p] [-S size] [-R size] source_file1 [source_file2]... dest_dir

Copy One or More Directory Subtrees

rcp [-k realm] [-P] [-p] [-S size] [-R size] -r source_dir1 [source_dir2]... dest_dir

Copy Files and Directory Subtrees

rcp [-k realm] [-P] [-p] [-S size] [-R size] -r file_or_dir1 [file_or_dir2]... dest_dir

DESCRIPTION

The rcp 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 cp command (see cp(1)).

To use rcp, 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 Third-Party Transfers section below.

In a Kerberos V5 Network Authentication environment, rcp 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 remshd on the remote host (i.e., -K, -R, -r, or -k). 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 fallback option can be set in the krb5.conf file within appdefaults Section. Refer to the krb5.conf(4) manpage for more information on the appdefaults Section. If fallback is set to true and the kerberos authentication fails, rcp will use the non-secure mode of authentication.

  • Note: Command line options override the configuration file options.

Options and Arguments

rcp 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:

user_name@hostname:pathname/filename or

user_name@hostname:pathname/dirname

Component parts of file and directory names are described below. If multiple existing files and/or directory subtrees (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 destination 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 constructed 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 -r option is used for recursive copying, then rcp 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 -r option is specified. If the -r option is present, then all the files and directory subtrees whose names match the specified file_or_dir name are copied.

-k realm

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 krb.realms.

-P

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,

krcmd: connect: hostname: Connection refused

See DIAGNOSTICS in remshd(1M) for more details.

-p

This option can be used to preserve (duplicate) modification times and modes (permissions) of source files, ignoring the current setting of the umask file creation mode mask. If this option is specified, rcp preserves the sticky bit only if the target user is superuser.

If the -p option is not specified, rcp preserves the mode and owner of dest_file if it already exists; otherwise rcp uses the mode of the source file modified by the umask on the destination host. Modification and access times of the destination file are set to the time when the copy was made.

-S size

This option sets the size of the socket send buffer.

-R size

This option sets the size of the socket receive buffer.

-r

This option can be used to recursively copy directory subtrees rooted at the source directory name. If any directory subtrees are to be copied, rcp 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, rcp creates a new directory source_dir within dest_dir and copies the subtree rooted at source_dir to dest_dir/source_dir. If dest_dir does not exist, rcp 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 hostname:path, 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@rhost, ruser is used on the remote host instead of the current user name. An unspecified path (that is, hostname:) refers to the remote user's login directory. If path does not begin with /, it is interpreted 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.

rcp 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 remshd (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:

rcp ruser1@rhost1:path1 ruser2@rhost2:path2

are performed as:

remsh rhost1 -l ruser1 rcp path1 ruser2@rhost2:path2

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 rcp with an IPv6 address, the IPv6 address must be enclosed in a pair of square brackets ([ and ]) as shown in the example below.

rcp source user@[IPv6_address]:dest

If the IPv6 address is not enclosed within square brackets, the first occurrence of a colon (:) is treated as the separator between the hostname and the path.

WARNINGS

The rcp routine is confused by any output generated by commands in a .cshrc file on the remote host (see csh(1)).

Copying a file onto itself, for example:

rcp path `hostname`:path

may produce inconsistent results. The current HP-UX version of rcp simply copies the file over itself. However, some implementations of rcp, including some earlier HP-UX implementations, corrupt the file. In addition, the same file may be referred to in multiple ways, for example, via hard links, symbolic links, or NFS. It is not guaranteed that rcp will correctly copy a file over itself in all cases.

Implementations of rcp based on the 4.2BSD version (including the implementations of rcp 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:

rcp ruser1@rhost1:path1 rhost2.ruser2:path2

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 command:

rcp rhost1:path1 rhost2:path2 rhost3.ruser3:path3

will certainly fail on one of the source systems. Perform such a transfer using two separate commands.

With the existing implementation of rcp, the remote copy may result in a system overwrite as described in the following example.

rcp -r path root@hostname: /

In this example, if you run rcp as root, and unintentionally type a space between the colon (:) and the slash (/), then rcp assumes both path and root@hostname: (the remote machine's root directory) as source. rcp always interprets the last argument as the destination. Therefore, the destination directory is the local machine's root directory (/). rcp copies the content of path to the root directory (/) first. It then does another copy with root@hostname 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 completely 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.

Error! could not retrieve authentication type.

Please notify sys admin.

There are two authentication mechanisms used by rcp. 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

rcp was developed by the University of California, Berkeley.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.