=head1 NAME

up - Recursively copy directories, preserving AFS metadata

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<up> [B<-v>] [B<-1>] [B<-f>] [B<-r>] [B<-x>] [B<-m>]
    <I<source directory>> <I<destination directory>>

=for html
</div>

=head1 DESCRIPTION

The B<up> command recursively copies the files and subdirectories in a
specified source directory to a specified destination directory.  The
command interpreter changes the destination directory and the files and
subdirectories in it in the following ways:

=over 4

=item *

It copies the source directory's access control list (ACL) to the
destination directory and its subdirectories, overwriting any existing
ACLs.

=item *

If the issuer is logged on as the local superuser root and has AFS tokens
as a member of the group system:administrators, then the source
directory's owner (as reported by the C<ls -ld> command) becomes the owner
of the destination directory and all files and subdirectories in
it. Otherwise, the issuer's user name is recorded as the owner.

=item *

If a file or directory exists in both the source and destination
directories, the source version overwrites the destination version. The
overwrite operation fails if the first (user) C<w> (write) mode bit is
turned off on the version in the destination directory, unless the B<-f>
flag is provided.

=item *

The modification timestamp on a file (as displayed by the C<ls -l>
command) in the source directory overwrites the timestamp on a file of the
same name in the destination directory, but the timestamp on an existing
subdirectory in the destination directory remains unchanged. If the
command creates a new subdirectory in the destination directory, the new
subdirectory's timestamp is set to the time of the copy operation, rather
than to the timestamp that the subdirectory has in the source directory.

=back

The up command is idempotent, meaning that if its execution is interrupted
by a network, server machine, or process outage, then a subsequent reissue
of the same command continues from the interruption point, rather than
starting over at the beginning. This saves time and reduces network
traffic in comparison to the UNIX commands that provide similar
functionality.

The B<up> command returns a status code of C<0> (zero) only if it
succeeds. Otherwise, it returns a status code of C<1> (one).

This command does not use the syntax conventions of the AFS command
suites. Provide the command name and all option names in full.

=head1 OPTIONS

=over 4

=item B<-v>

Prints a detailed trace to the standard output stream as the command runs.

=item B<-1>

Copies only the files in the top level source directory to the destination
directory, rather than copying recursively through subdirectories. The
source directory's ACL still overwrites the destination directory's. (This
is the number one, not the letter C<l>.)

=item B<-f>

Overwrites existing directories, subdirectories, and files even if the
first (user) C<w> (write) mode bit is turned off on the version in the
destination directory.

=item B<-m>

Recognize and copy mount points rather than traversing the volumes they
reference during the recursive copy operation.  Without B<-m>, B<up>'s
default behavior is to copy the contents of all volumes and subvolumes
mounted under the source directory into the volume containing the
destination directory.

=item B<-r>

Creates a backup copy of all files overwritten in the destination
directory and its subdirectories, by adding a C<.old> extension to each
filename.

=item B<-x>

Sets the modification timestamp on each file to the time of the copying
operation.

=item I<source directory>

Names the directory to copy recursively.

=item I<destination directory>

Names the directory to which to copy. It does not have to exist already.

=back

=head1 EXAMPLES

The following command copies the contents of the directory F<dir1> to
directory F<dir2>:

   % up dir1 dir2

=head1 PRIVILEGE REQUIRED

The issuer must have the C<a> (administer) permission on the ACL of both
the source and destination directories.

=head1 COPYRIGHT

IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0.  It was
converted from HTML to POD by software written by Chas Williams and Russ
Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
