CP(1)                                                                    CP(1)


NAME
     cp, ln, mv - copy, link or move files

SYNOPSIS
     cp [ -aDfirRp -b size -tP -e size ] file1 [file2 ...] target
     ln [ -sif ] file1 [file2 ...] target
     mv [ -if -b size ] file1 [file2 ...] target

DESCRIPTION
     file1 is copied (linked, moved) to target.  Under no circumstance can
     file1 and target be the same (take care when using sh(1) metacharacters).
     If target is a directory, then one or more files are copied (linked,
     moved) to that directory.  If target is an existing file, its contents
     are destroyed, except in the ln and ln -s case where the command will
     fail and ln will write a diagnostic message to standard error (use the -i
     or -f option to override this behavior).  NOTE that this is a change from
     the historical ln execution.

     If mv or ln determines that the mode of target forbids writing, it will
     print the mode (see chmod(2)), ask for a response, and read the standard
     input for one line; if the line begins with y, the mv or ln occurs, if
     permissible; if not, the command exits.  When the -f option is used or if
     the standard input is not a terminal, no questions are asked and the mv
     or ln is done.  Additionally, if target exists, then the -f option will
     force the link when ln -s is specified.  If cp determines that the mode
     of target forbids writing, the command will fail and cp will write a
     diagnostic message to standard error (use the -i or -f option to override
     this behavior).

     If the -f option is specified with mv, any previous occurrences of the -i
     option will be ignored.

     For mv, if file1 is a directory, mv will perform actions equivalent to
     the rename function.  If this fails for any reasons other than those
     described for the errno [EXDEV], mv will write a diagnostic message to
     standard error, do nothing more with the current source file, and go on
     to any remaining source files. Otherwise, the file hierarchy rooted in
     file1 will be duplicated as a file hierarchy rooted in the destination
     path. The time of last data modification, the time of last access, the
     user ID and group ID and file mode will be duplicated.  If the user ID,
     group ID or file mode of a regular file cannot be duplicated, the file
     mode bits S_ISUID and S_ISGID will not be duplicated.  When files are
     duplicated to another file system, the invoking process must has read
     access to each file being duplicated.  If the duplication of the file
     hierarchy fails for any reason, mv will write a diagnostic message to
     standard error, do nothing more with the current source_file, and go on
     to any remaining source_files. If the duplication of the file
     characteristics fails for any reason, mv will write a diagnostic message
     to standard error, but this failure will not cause mv to modify its exit
     status.  If the copying or removal of file1 is prematurely terminated by
     a signal or error, mv may leave a partial copy of file1 at the source or
     destination. The mv utility will not modify both file1 and the


     destination path simultaneously; termination at any point will leave
     either file1 or the destination path complete.

     For mv, if file1 is a file and target is a link to another file with
     links, the other links remain and target becomes a new file.

     When cp is invoked, if target is not an existing file, a new file is
     created with the same mode as file1 except that the mode is modified by
     the user's umask, and the sticky bit is not set unless you are super-
     user; the owner and group of target are those of the user.  If target is
     a file, copying a file into target does not change its mode, owner or
     group.  The last modification time of target (and last access time, if
     target did not exist) and the last access time of file1 are set to the
     time the copy was made.  If target is a link to a file, all links remain
     and the file is changed.

     When copying between XFS filesystems, cp will replicate holes in file1 in
     target.

     If the -p option is specified, cp will duplicate the following
     characteristics of each source file in the corresponding destination
     file:

     1.   The time of last data modification and time of last access. If this
          duplication fails for any reason, cp will write a diagnostic message
          to standard error.

     2.   The user ID and group ID. If this duplication fails for any reason,
          cp will write a diagnostic message to standard error.

     3.   The file permission bits and the S_ISUID and S_ISGID bits. Other,
          implementation-dependent, bits may be duplicated as well. If this
          duplication fails for any reason, cp will write a diagnostic message
          to standard error.

          If the user ID or the group ID cannot be duplicated,
          the file permission bits S_ISUID and S_ISGID will be cleared. If
          these bits are present in the source file but are not duplicated in
          the destination file, cp will write a diagnostic message to standard
          error.

     4.   The project ID, if the invoking user has CAP_SETUID capability.
          Otherwise the project will be set to the invoking user's active
          project ID.

     The -a option to cp will copy user mode XFS attributes, the option is
     silently ignored if any of the files involved is not on an XFS
     filesystem.

     The -D option to cp specifies that direct IO should be used to copy the
     file, file data is not buffered in the kernel.  Direct IO will only
     function on XFS and EFS filesystems.  The -b blocksize option to cp and


     mv can be used to specify a specific blocksize to use.  This option can
     be used with or without the -D option.

     If the -t option is specified then cp will attempt to create an output
     file on the realtime extent of the target filesystem.  The -e extsize
     option can be used to specify an extent size other than the default for
     the filesystem.  The -P option is used to indicate that the file size
     should be padded out to a legitimate size for a realtime file if file1 is
     not a legitimate size.  The target filesystem must be XFS for the -t
     option to work.

     With the -s option ln creates symbolic links.  A symbolic link is a
     special kind of file whose contents are the name of another file (see
     symlink(2)).  A symbolic link contains the name of the file to which it
     is linked.  Most system calls, including open(2), stat(2), and access(2),
     substitute these contents when the name of a symbolic link occurs in a
     pathname.  This process is known as ``following'' symbolic links.
     stat(2), readlink(2), symlink(2), and unlink(2) also do this
     substitution, except on the last component of the pathname.  Thus, they
     are said not to ``follow'' symbolic links.  Symbolic links may span file
     systems and may refer to directories.  Note that cp ``follows'' symbolic
     links (except when using the -R option, while mv and ln do not ``follow''
     symbolic links.

     If the -i option is specified with cp, ln, or mv and target exists, the
     user is prompted with the message:

          overwrite target?

     If the user answers with a line starting with `y', the move or copy
     continues.  Any other reply prevents the command from completing.  When
     creating soft links this warning often indicates that the user has
     swapped the file and target parameters, which results in replacement of
     the target file with a dangling symbolic link.

     If the -i option is specified with mv, any previous occurrences of the -f
     option will be ignored.

     If the -r or -R option is specified with cp and any of the source files
     are directories, cp copies each subtree rooted at that name; in this case
     target must be a directory.  The difference between -r and -R is that -r
     causes cp to follow symbolic links and -R does not.  (Note that the
     behavior of -R is defined by POSIX, whereas the behavior of -r is
     particular to this implementation.)

     If the -R option is specified with cp and the source file is not of type
     directory or regular file, then the following steps will be taken:

     1.   The target file will be created with the same file type as file1.


     2.   If file1 is a type FIFO, the target file permission bits will be the
          same as those of file1 modified by the file creation mask of the
          user if the -p option was not specified.

          If this creation fails for any reason, cp will write a diagnostic
          message to standard error, do nothing more with the source file and
          go on to any remaining files.

SEE ALSO
     chmod(1), cpio(1), rm(1), umask(1).

WARNINGS
     ln without -s will not link across file systems.  This restriction is
     necessary because file systems can be added and removed.

BUGS
     If file1 and target lie on different file systems, mv must copy the file
     and delete the original.  In this case any linking relationship with
     other files is lost.


                                                                        Page 4