CPIO(1,C) AIX Commands Reference CPIO(1,C) ------------------------------------------------------------------------------- cpio PURPOSE Copies files into and out of archived storage and directories. SYNTAX +-------+ +-------------+ cpio --- -o ---|1+---+ |---|1 one of |---| +-| a |-+ | +---------+ | ^| c || +-| B |-+ || h || | Cvalue | || v || +---------+ |+---+| +-----+ +-------------+ +-------------+ +--- "*" ---+ cpio --- -i ---|1+---------+ |---|1 one of |---| |---| +-| b c d f |-+ | +---------+ | +- pattern -+ ^| m r t u || +-| B |-+ ^ | || v s S 6 || | Cvalue | +---------+ |+---------+| +---------+ +-----------+ +-------------+ cpio --- -p ---|1+---------+ |--- directory ---| +-| a d h l |-+ ^| m r u v || |+---------+| +-----------+ ----------------- 1 Do not put a blank between these items. DESCRIPTION Warning: If you redirect the output from the cpio command to a special file (device), you should redirect it to the raw device and not the block device. Because writing to a block device is done asynchronously, there is no way to know if the end of the device has been reached. Note: If you are using different machine types for the input and output of cpio, you must use the -c flag. Processed July 12, 1991 CPIO(1,C) 1 CPIO(1,C) AIX Commands Reference CPIO(1,C) cpio -o This command reads file path names from standard input and copies these files to standard output along with path names and status information. Path names cannot exceed 128 characters. Avoid giving the cpio command path names made up of many uniquely linked files because it may not have enough memory to keep track of them thereby losing linking information. cpio -i This command reads from standard input an archive file created by the cpio -o command and copies from the archive file all files with names that match pattern. These files are copied into the current directory tree. You may list more than one pattern, using the file name notation described under "sh, Rsh." However, in this application the special characters "*", "?", and [...] match the / (slash) in path names, in addition to their use as described under "sh, Rsh." The default pattern is "*" (which specifies the selection of all files in the current directory). In an expression such as [a-z], the - minus means "through" according to the current collating sequence. A collating sequence may define equivalence classes for use in character ranges. See the "Introduction to International Character Support" in Managing the AIX Operating System for more information on collating sequences and equivalence classes. If you have selected a language (through the LANG environment variable) that supports multibyte characters, a collating sequence does not define equivalence classes for use in range expressions. Therefore, to avoid unpredictable results when using a range expression to match a class of characters, use a character class expression rather than a standard range expression. For more information about character class expressions, see the note on page ed-3 under the ed, red command. Note: When the cpio files are written, the original values for the owner, group, and permissions are set only when the superuser runs the cpio command. Otherwise, the files are owned by the user who runs the command and their permissions are XOR'd with the current value of umask(1). This restriction also applies for the -p option. cpio -p This command reads file path names from standard input and copies these files into the named directory. The specified directory must already exist. If these path names include directory names that do not already exist, you must use the d flag as well. Note: When using the cpio command on internal tape backup units, use the -B option (5120-byte blocks) or -C option (specified with an even number of blocks). For example: find . -print | cpio -ovB > /dev/rst0 The default 512-byte blocks are not a multiple of the PS/2 internal tape backup unit's block size and, therefore, cannot be used. Processed July 12, 1991 CPIO(1,C) 2 CPIO(1,C) AIX Commands Reference CPIO(1,C) FLAGS All flags must be listed together, without any blanks between them. Not all of the following flags can be used with each of the -o, -i, and -p flags. a Resets access times of input files after they have been copied. This is only done if access permissions permit (see utime in AIX Operating System Technical Reference). b Swaps both bytes and halfwords. Note: If there are an odd number of bytes or halfwords in the file being processed, data can be lost. B Performs block input/output, 5120 bytes to a record. c Writes header information in ASCII character form. Use this flag for compatibility between machine types. Cvalue Performs block input/output, value * 512 bytes to a record. Note: The C flag and the B flag are mutually exclusive. If you list both, the cpio commands uses the last one it encounters in the flag list. d Creates directories as needed. f Copies all files except those matching pattern. h Follows symbolic links. Normally, symbolic links are not followed. This option should be used only with cpio -o or cpio -p command. l Links files rather than copies them, whenever possible. This flag is usable only with the cpio -p command. m Retains previous file modification time. This flag does not work when copying directories. r Renames files interactively. If you do not want to change the file name, enter the current file name or press the Enter key only. In this last case, the cpio command does not copy the file. s Swaps bytes. This flag is usable only with the cpio -i command. Note: If there are an odd number of bytes in the file being processed, data can be lost. S Swaps halfwords. This flag is usable only with the cpio -i command. Note: If there are an odd number of halfwords in the file being processed, data can be lost. Processed July 12, 1991 CPIO(1,C) 3 CPIO(1,C) AIX Commands Reference CPIO(1,C) t Creates a table of contents. This command does not copy any files. u Copies unconditionally. An older file now replaces a newer file with the same name. v Lists file names. If you use this flag with the t flag, the output looks similar to that of the ls -l command. 6 Processes an old file (one written in UNIX Sixth Edition format). This flag is usable only with the cpio -i command. EXAMPLES 1. To copy files onto diskette: cpio -ov /dev/rfd0 This command copies the files with path names that are listed in the file "file names" in a compact form onto the diskette (>"/dev/rfd0"). The -v flag causes the cpio command to display the name of each file as it is copied. This command is useful for making backup copies of files. The diskette must already be formatted, but it must not contain a file system or be mounted. 2. To copy files in the current directory onto diskette: ls *.c | cpio -ov >/dev/rfd0 This command copies all the files in the current directory whose names end with ".c" onto the diskette (>"/dev/rfd0"). 3. To copy the current directory and all subdirectories onto diskette: find . -print | cpio -ov >/dev/rfd0 This command saves the directory tree that starts with the current directory (.) and includes all of its subdirectories and files. A faster way to do this is: find . -cpio /dev/rfd0 -print The "-print" identify displays the name of each file as it is copied. 4. To list the files that have been saved onto a diskette with the cpio command: cpio -itv asks whether the file saved as "prog.c" should be given a new name as it is copied in. To rename the file, type the new name and press Enter. To keep the same name, you must enter the name again. To avoid copying the file at all, simply press the Enter key. 8. To copy a directory and all of its subdirectories: mkdir /u/tom/newdir find . -print | cpio -pdl /u/tom/newdir This command duplicates the current directory tree, including the current directory and all of its subdirectories and files. The duplicate is placed in the new directory "/u/tom/newdir". The -l flag causes the cpio command to link files instead of copying them, when possible. RELATED INFORMATION See the following commands: "ar," "find," "ln," and "umask." See the cpio file format in AIX Operating System Technical Reference. Processed July 12, 1991 CPIO(1,C) 5 CPIO(1,C) AIX Commands Reference CPIO(1,C) See "Introduction to International Character Support" in Managing the AIX Operating System. Processed July 12, 1991 CPIO(1,C) 6