scpio(1)
NAME
scpio - copy file archives in and out (LEGACY)
SYNOPSIS
scpio [ other options ] -o[aBcv] scpio [ other options ] -i[Bcdmruvf] [ pattern ... ] scpio [ other options ] -it[Bcvf] [ pattern ... ] scpio [ other options ] -p[adlmuv] directory
DESCRIPTION
The scpio utility, depending on the options used:
· copies files to an archive file
· extracts files from an archive file
· lists files from an archive file
· copies files from one directory tree to another.
OPTIONS
- The scpio utility supports the XBD specification Utility
- Syntax Guidelines. The cpio standard does not allow the option
- modifiers to be presented as separate arguments from the option
- letters. The scpio implementation allows option modifiers to be
- presented as separate arguments from the option letters. When
- writing portable shell scripts do never make use of this feature.
- The following options are supported:
- -o (Copy Out.) Read the standard input to obtain a
- list of pathnames and copy those files onto the standard output
- together with pathname and status information. Output is padded
- to a 512-byte boundary.
- -i (Copy In.) Extract files from the standard input,
- which is assumed to be the product of a previous scpio -o. Only
- files with names that match patterns are selected. The extracted
- files are conditionally created and copied into the current di
- rectory tree based upon the options described below. The permis
- sions of the files will be those of the previous scpio -o. The
- owner and group of the files will be that of the current user un
- less the user has appropriate privileges, which causes scpio to
- retain the owner and group of the files of the previous scpio -o.
- If the archive being read does not match the modifier specified,
- scpio may consider this to be an error and exit or may recognise
- the archive and continue processing. Only a user with appropriate
- privileges can extract block special or character special files
- from an archive.
- -it (List.) List files from the archive. This is a sub
- mode of the copy in mode, no files are created in list mode.
- -p (Pass.) Read the standard input to obtain a list of
- pathnames of files that are conditionally created and copied into
- the destination directory tree based upon the option modifiers
- described below.
- The following option modifiers can be appended in any se
- quence to the -o, -i or -p options:
- a Reset access times of input files after they have
- been copied. (When option l (see below) is also specified, the
- access times of the linked files are not reset.)
- B Block input/output 5120 bytes to the record (does
- not apply to the -p option; meaningful only with data directed to
- or from character special files).
- d Create directories as needed.
- c Write or read header information in character form
- for portability. Note that the Open Group standard does not
- specify the archive format that should be used with the c option.
- For this reason it is questionable wether the c option increases
- portability in general.
The archive format used by scpio with the c option- is the format from the -H asc option. It gives best cpio compat
- ibility when transferring files to SVR4-based systems (except
- that the file size is limited to 2 gigabytes). When transferring
- files in cpio archives to unknown operating systems, it is unwise
- to use the c option.
- r Interactively rename files. For each archive member
- matching pattern operand, a prompt will be written to the file
- /dev/tty. The prompt will contain the name of the archive mem
- ber, but the format is otherwise unspecified. A line will then be
- read from /dev/tty. If this line is blank, the archive member
- will be skipped. If this line consists of a single period, the
- archive member will be processed with no modification to its
- name. Otherwise, its name will be replaced with the contents of
- the line. The scpio utility will immediately exit with a non-zero
- exit status if end-of-file is encountered when reading a re
- sponse, or if /dev/tty cannot be opened for reading and writing.
- t Write a table of contents of the input. No files
- are created.
- u Copy unconditionally (normally, an older file will
- not replace a newer file with the same name).
- v Verbose: print the names of the affected files.
- With the t option, provides a detailed listing.
- l Whenever possible, link files rather than copying
- them. Usable only with the -p option. The l option modifier is
- not yet supported by scpio.
- m Retain previous file modification time. This option
- is ineffective on directories that are being copied.
- f Copy in all files except those in patterns.
- The following other options are implemented as SVr4
- compliant extension to the Open Group standard:
- -6 Extract UNIX System Sixth Edition cpio archives.
- This option is not valid in archive create mode, it is mutually
- exclusive with -c, -H, and artype=. As is is unclear how UNIX
System Sixth Edition
- rently unsupported.
-@ Include extended file attributes in the archive. - This option is currently unsupported.
- -A Append files to an existing archive. The -A option
- only works together with the -O option. See star -r for more in
- formation.
- -b Reverses the order of the bytes within each word.
- It is unclear what a word is supposed to be. This option is un
- supported but not needed as scpio includes automatic byte order
- recognition.
- -C # Sets (input/output) archive block size to # bytes.
- -E name
- Read filenames for store/create/list command from
- name. The file name must contain a list of filenames, each on a
- separate line.
- -H header
- Set the archive type to header. See star(1) for
- more information.
- -I nm Use nm as archive file name instead of stdin.
- -k Try to skip corrupt archive headers.
- -L Follow symbolic links as if they were files.
- -M message
- Define a message that is uses when switching media.
- This option is currently unsupported.
- -O nm Use nm as archive file name instead of stdout.
- -P Handle Access Control List (ACL) information in
- create and extract mode. See star -acl for more information.
- -R nm Reassign ownership and group for all files based on
- nm. This option is currently unsupported.
- -s Reverses the order of the bytes within each word.
- It is unclear what a word is supposed to be. This option is un
- supported but not needed as scpio includes automatic byte order
- recognition.
- -S Reverses the order of the halfwords within each
- word. It is unclear what a word is supposed to be. This option
- is unsupported but not needed as scpio includes automatic byte
- order recognition.
- -V Special verbose. Print a dot for each file that is
- read or written. This option is currently unsupported.
- The following other options are implemented as star exten
- sion to the Open Group standard:
- -help Prints a summary of the most important options for
- scpio(1) and exits.
- -xhelp Prints a summary of the less important options for
- scpio(1) and exits.
- -version
- Prints the scpio version number string and exists.
- -/ Don't strip leading slashes from file names when
- extracting an archive. See star(1) for more information.
- .. Don't skip files that contain /../ in the name.
- See star(1) for more information.
- -acl Handle Access Control List (ACL) information in
- create and extract mode. See star(1) for more information.
- artype=header
- Set the archive type to header. See star(1) for
- more information.
- -bz Run the input or output through a bzip2 pipe - see
- option -z below. As the -bz the -z options are non standard, it
- makes sense to omit -bz options the inside shell scripts. If you
- are going to extract a compressed archive that is located inside
- a plain file, scpio will auto detect compression and choose the
- right decompression option to extract.
- bs=# Set block size to #. You may use the same method as
- in dd(1) and sdd(1). See star(1) for more information.
- -fifostats
- Print fifo statistics at the end of a scpio run
- when the fifo has been in effect.
- fs=# Set fifo size to #. See star(1) for more informa
- tion.
- -no-fifo
- Do not use a fifo to optimize data flow from/to
- tape. See star(1) for more information.
- -no-fsync
- Do not call fsync(2) for each file that has been
- extracted from the archive. See star(1) for more information.
- -no-statistics
- Do not print statistic messages at the end of a
- scpio run.
- -secure-links
- Do not extract hard links or symbolic links if the
- link name (the target of the link) starts with a slash (/) or if
- /../ is contained in the link name. See star(1) for more infor
- mation.
- -numeric
- Use the numeric user/group fields in the listing
- rather than the default. See star(1) for more information.
- -time Print timing info. See star(1) for more informa
- tion.
- -xfflags
- Store and extract extended file flags as found on
- BSD and Linux systems. See star -acl for more information.
- -z Run the input or output through a gzip pipe - see
- option -bz above. As the -bz the -z options are non standard, it
- makes sense to omit -bz options the inside shell scripts. If you
- are going to extract a compressed archive that is located inside
- a plain file, scpio will auto detect compression and choose the
- right decompression option to extract.
OPERANDS
The following operands are supported:
- directory
- A pathname of an existing directory to be used as
- the target of scpio -p.
- pattern
- Expressions making use of a pattern-matching nota
- tion similar to that used by the shell for filename pattern
- matching, and similar to regular expressions. The following
- metacharacters are defined:
- * Matches any string, including the empty
- string.
- ? Matches any single character.
- [...] Matches any one of the enclosed characters.
- A pair of characters separated by `-' matches any symbol between
- the pair (inclusive), as defined by the system default collating
- sequence. If the first character following the opening `[' is a
- `!', the results are unspecified.
- In pattern, the special characters "?", "*" and "["
- also match the "/" character. Multiple cases of pattern can be
- specified and if no pattern is specified, the default for pattern
- is "*" (that is, select all files).
- Note that scpio does not use fnmatch(3) based pat
- tern matching as documented above, it rather uses the pattern
- matcher documented in match(1).
STDIN
- When the -o or -p options are used, the standard input is
- a text file containing a list of pathnames, one per line, to be
- copied.
- When the -i option is used, the standard input is an
- archive file formatted in any way that is understood by the
- archive handling engine (see -H help option for a complete list).
INPUT FILES
- The files identified by the pathnames in the standard in
- put are of any type.
- When the -r option is used, the file /dev/tty is used to
- write prompts and read responses.
ASYNCHRONOUS EVENTS
Default.
STDOUT
- When the -o option is used, the standard output is an
- archive file formatted as specified by pax with the -x cpio op
- tion. For better compatibility with SVR4-based systems that do
- not implement the cpio format correctly, scpio by default limits
- the length of file names to 256 bytes. Use scpio -H cpio to ex
- plicitly switch to the full POSIX 1003.1-1988 cpio archive for
- mat.
- Otherwise, the standard output contains commentary in an
- unspecified format concerning the progress of the execution.
STDERR
- When the -o option is not used, the standard error con
- tains commentary in an unspecified format concerning the progress
- of the execution. Otherwise, the standard error is used only for
- diagnostic messages.
OUTPUT FILES
- Output files are created, as specified by the archive,
- when the -i or -p options are used.
EXTENDED DESCRIPTION
None.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
CONSEQUENCES OF ERRORS
- If a file or directory cannot be created or overwritten,
- scpio continues with the next file in the archive or file to be
- added to the archive.
APPLICATION USAGE
- Archives created by scpio are portable between XSI-confor
- mant systems provided the same procedures are used.
- The shell metacharacter notation is not fully compatible
- with that used by the shell and the pax utility. Not all systems
- support the use of the negation character [! ...] in cpio pat
- terns. Portable applications must avoid the use of this notation.
- For portable communication of data between XSI-conformant
- systems, it is recommended that only characters defined in the
- ISO/IEC 646:1991 standard International Reference Version (equiv
- alent to ASCII) 7-bit range of characters be used and that only
- characters defined in the Portable Filename Character Set be used
- for naming files. This recommendation is given because XSI-con
- formant systems support diverse codesets and run in various geo
- graphical areas and there is no single, well-established codeset
- that incorporates all of the characters of the languages of the
- various geographical areas.
- The cpio archive format only supports file sizes up to 8
- gigabytes.
- Applications should migrate to the pax archive format
- which is the POSIX 1003.1-2001 standard archive format and based
- on an extended tar format.
FUTURE DIRECTIONS
None.
EXAMPLES
1. Copy the contents of a directory onto an archive:
ls | scpio -o >../cpio.out
2. Duplicate a directory hierarchy:
cd olddir
find . -depth -print | scpio -pd ../newdir
ENVIRONMENT
- The following environment variables may affect the execu
- tion of scpio:
- TZ Determine the timezone used with date and time
- strings.
SEE ALSO
DIAGNOSTICS NOTES
- The default block size for cpio is 512 bytes, this slows
- down write speed. Use -B, -C, or bs= to set a different block
- size.
- The Open Group, have given us permission to reprint por
- tions of their documentation. In the following statement, the
- phrase ``this text'' refers to portions of the system documenta
- tion.
- Portions of this text are reprinted and reproduced in
- electronic form in the scpio manual, from The Open Group Base
- Specifications Issue 5, Copyright (C) 1997 by The Open Group. In
- the event of any discrepancy between these versions and the orig
- inal specification, the original The Open Group Standard is the
- referee document. The original Standard can be obtained online at
- http://www.opengroup.org/unix/single_unix_specification_v2.
BUGS AUTHOR
Joerg Schilling
Seestr. 110
D-13353 Berlin
Germany
Mail bugs and suggestions to:
- schilling@fokus.fraunhofer.de or js@cs.tu-berlin.de or
- joerg@schily.isdn.cs.tu-berlin.de
- Joerg Schilling 04/10/04