Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SCPIO(1L)		     Schily's USER COMMANDS		       SCPIO(1L)

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  al-
     lows option modifiers to be presented as separate arguments from the option
     letters. When writing portable shell scripts do never make use of this fea-
     ture.

     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 condition-
	    ally created and copied into the current directory tree  based  upon
	    the  options  described  below. The permissions 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 unless 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 sequence 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 for-
	    mat that should be used with the c option.	For this  reason  it  is
	    questionable whether 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  compatibility  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 op-
	    tion.

     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 member, but the format is  oth-
	    erwise unspecified. A line will then be read from /dev/tty.  If this
	    line is blank, the archive member will be skipped. If this line con-
	    sists  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 response, 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 cpio
	    archives look like, this option is currently 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 to-
	    gether with the -O option.	See star -r for more information.

     -b     Reverses the order of the bytes 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.

     -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 unsupported	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 extension to the Open
     Group standard:

     -help  Prints a summary of the most important options for scpio(1) and  ex-
	    its.

     -xhelp
	    Prints  a summary of the less important options for scpio(1) and ex-
	    its.

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

     -7z    run the input or output through a p7zip pipe - see option -z below.

	    Note that the p7zip program currently does not operate on a pipe but
	    on a /tmp file copy and thus limits the maximum archive size.

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

     -lzo   Run the input or output through a lzop pipe - see option -z below.

     -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 information.

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

     -do-fsync
	    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 information.

     -numeric
	    Use the numeric user/group fields in the listing rather than the de-
	    fault.  See star(1) for more information.

     -time  Print timing info.	See star(1) for more information.

     -xfflags
	    Store and extract extended file flags as found on BSD and Linux sys-
	    tems.  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.

     -zstd  run the input or output through a zstd pipe - see option -z above.

OPERANDS
     The following operands are supported:

     directory
	    A pathname of an existing directory to be used as the target of  sc-
	    pio -p.

     pattern
	    Expressions  making  use  of  a pattern-matching notation 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 charac-
		   ters separated by `-' matches any  symbol  between  the  pair
		   (inclusive),  as  defined by the system default collating se-
		   quence. 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,  se-
	    lect all files).

	    Note  that	scpio  does not use fnmatch(3) based pattern 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 con-
     taining 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 input 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 format-
     ted as specified by pax with the -x cpio option. 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  explicitly  switch to the full POSIX 1003.1-1988 cpio archive
     format.

     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 contains  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.

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-conformant systems  pro-
     vided 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 nega-
     tion character [! ...] in cpio patterns. 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 (equivalent to ASCII) 7-bit range of char-
     acters be used and that only characters defined in  the  Portable	Filename
     Character	Set  be  used for naming files. This recommendation is given be-
     cause XSI-conformant systems support diverse codesets and	run  in  various
     geographical  areas  and  there is no single, well-established codeset that
     incorporates all of the characters of the languages  of  the  various  geo-
     graphical 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.

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 execution of scpio:

     TZ     Determine the timezone used with date and time strings.

SEE ALSO
     ar(1),  find(1),  sfind(1),  ls(1),  match(1),  pax(1),  spax(1),	 tar(1),
     star(1).

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.

     Scpio -iu is equivalent to star -xU -install  -force-remove  -remove-recur-
     sive  and	for  this  reason may remove nonempty directory trees in extrace
     mode without printing a warning.

     The Open Group, have given us permission to reprint portions of their docu-
     mentation. In the following statement, the phrase ``this text''  refers  to
     portions of the system documentation.

     Portions  of  this  text are reprinted and reproduced in electronic form in
     the scpio manual, from The Open Group Base Specifications	Issue  5,  Copy-
     right  (C)  1997 by The Open Group. In the event of any discrepancy between
     these versions and the original specification, the original The Open  Group
     Standard is the referee document. The original Standard can be obtained on-
     line at http://www.opengroup.org/unix/single_unix_specification_v2.

BUGS
     None currently known.

     Mail  bugs  and  suggestions  to  schilytools@mlists.in-berlin.de or open a
     ticket at https://codeberg.org/schilytools/schilytools/issues.

     The mailing list archive may be found at:

     https://mlists.in-berlin.de/mailman/listinfo/schilytools-mlists.in-berlin.de.

AUTHORS
     Joerg Schilling and the schilytools project authors.

SOURCE DOWNLOAD
     The source code for scpio is included in the schilytools project and may be
     retrieved from the schilytools project at Codeberg at

     https://codeberg.org/schilytools/schilytools.

     The download directory is

     https://codeberg.org/schilytools/schilytools/releases.

Joerg Schilling 		   2022/08/17			       SCPIO(1L)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=scpio&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help