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	Guide-
       lines. The cpio standard	does not allow the option modifiers to be pre-
       sented as separate arguments from the option letters.  The scpio	imple-
       mentation 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 path-
	      names 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  as-
	      sumed 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	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  appropri-
	      ate  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	desti-
	      nation 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 portabil-
	      ity.  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	whether	the c option increases	porta-
	      bility 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 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 member, 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. Oth-
	      erwise, 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 op-
	      tion, 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 sup-
	      ported by	scpio.

       m      Retain previous file modification	time. This option is  ineffec-
	      tive 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	unsup-
	      ported.

       -@     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 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  informa-
	      tion.

       -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 ex-
	      tract 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 un-
	      clear what a word	is supposed to be.  This option	is unsupported
	      but not needed as	scpio includes automatic byte  order  recogni-
	      tion.

       -V     Special verbose. Print a dot for each file that is read or writ-
	      ten.  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
	      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.

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

	      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  ex-
	      tract mode.  See star(1) for more	information.

       artype=header
	      Set  the	archive	type to	header.	 See star(1) for more informa-
	      tion.

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

       -bz    Run the input or output through a	bzip2 pipe - see option	-z be-
	      low.  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
	      default.	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
	      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.

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

       pattern
	      Expressions making use of	a pattern-matching notation similar to
	      that  used by the	shell for filename pattern matching, and simi-
	      lar to regular expressions. The following	metacharacters are de-
	      fined:

	      *	     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 pattern matching
	      as documented above, it rather uses the  pattern	matcher	 docu-
	      mented 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  for-
       matted  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 for-
       matted as specified by pax with the -x cpio option. For better compati-
       bility 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. Oth-
       erwise, 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  contin-
       ues  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
       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 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	characters be used and that only  characters  defined  in  the
       Portable	 Filename  Character Set be used for naming files. This	recom-
       mendation is given because XSI-conformant systems support diverse code-
       sets 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	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.

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-re-
       cursive and for this reason may remove nonempty directory trees in  ex-
       trace mode without printing a warning.

       The  Open  Group, have given us permission to reprint portions of their
       documentation. 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,
       Copyright  (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 online at http://www.opengroup.org/unix/single_unix_speci-
       fication_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+14.3.quarterly>

home | help