CPIO(1L)

CPIO(1L)                                                              CPIO(1L)



NAME
       cpio - copy files to and from archives

SYNOPSIS
       Copy-out mode

       In  copy-out  mode, cpio copies files into an archive.  It reads a list
       of filenames, one per line, on  the  standard  input,  and  writes  the
       archive  onto  the standard output.  A typical way to generate the list
       of filenames is with the find command; you should give find the  -depth
       option  to  minimize  problems with permissions on directories that are
       unreadable.  see “Options”.

       cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M message]  [-O
       [[user@]host:]archive]            [-F            [[user@]host:]archive]
       [--file=[[user@]host:]archive]    [--format=format]     [--message=mes-
       sage][--null]   [--reset-access-time]  [--verbose]  [--dot]  [--append]
       [--block-size=blocks]  [--dereference]  [--io-size=bytes]   [--rsh-com-
       mand=command] [--help] [--version] < name-list [> archive]

       Copy-in mode

       In  copy-in  mode,  cpio  copies  files  out of an archive or lists the
       archive contents.  It reads the archive from the standard  input.   Any
       non-option  command  line  arguments  are shell globbing patterns; only
       files in the archive whose names match one or more  of  those  patterns
       are  copied from the archive.  Unlike in the shell, an initial ‘.’ in a
       filename does match a wildcard at the start of a pattern, and a ‘/’  in
       a  filename  can  match wildcards.  If no patterns are given, all files
       are extracted.  see “Options”.

       cpio {-i|--extract} [-bcdfmnrtsuvBSV] [-C bytes] [-E file] [-H  format]
       [-M  message]  [-R  [user][:.][group]]  [-I  [[user@]host:]archive] [-F
       [[user@]host:]archive] [--file=[[user@]host:]archive]  [--make-directo-
       ries]  [--nonmatching]  [--preserve-modification-time]  [--numeric-uid-
       gid] [--rename] [-t|--list] [--swap-bytes] [--swap] [--dot] [--uncondi-
       tional]  [--verbose]  [--block-size=blocks]  [--swap-halfwords]  [--io-
       size=bytes]           [--pattern-file=file]           [--format=format]
       [--owner=[user][:.][group]]  [--no-preserve-owner]  [--message=message]
       [--force-local]    [--no-absolute-filenames]     [--absolute-filenames]
       [--sparse]   [--only-verify-crc]  [--to-stdout]  [--quiet]  [--rsh-com-
       mand=command] [--help] [--version] [pattern...] [< archive]

       Copy-pass mode

       In copy-pass mode,  cpio  copies  files  from  one  directory  tree  to
       another,  combining  the  copy-out  and  copy-in steps without actually
       using an archive.  It reads the list of files to copy from the standard
       input;  the  directory  into which it will copy them is given as a non-
       option argument.  see “Options”.

       cpio {-p|--pass-through} [-0adlmuvLV] [-R  [user][:.][group]]  [--null]
       [--reset-access-time]  [--make-directories]  [--link] [--quiet] [--pre-
       serve-modification-time]    [--unconditional]    [--verbose]    [--dot]
       [--dereference]    [--owner=[user][:.][group]]    [--no-preserve-owner]
       [--sparse] [--help] [--version] destination-directory < name-list


DESCRIPTION
       GNU cpio is a tool for creating and  extracting  archives,  or  copying
       files  from  one place to another.  It handles a number of cpio formats
       as well as reading and writing tar files.

       Following archive formats are supported: binary, old ASCII, new  ASCII,
       crc,  HPUX  binary,  HPUX old ASCII, old tar, and POSIX.1 tar.  The tar
       format is provided for compatibility with the tar program. By  default,
       cpio  creates binary format archives, for compatibility with older cpio
       programs.  When extracting from archives, cpio automatically recognizes
       which  kind  of  archive it is reading and can read archives created on
       machines with a different byte-order.


OPTIONS
       ‘-0, --null’
              Read a list of filenames terminated by a null character, instead
              of  a newline, so that files whose names contain newlines can be
              archived.  GNU find is one way to produce a list of  null-termi-
              nated  filenames.  This option may be used in copy-out and copy-
              pass modes.

       ‘-a, --reset-access-time’
              Reset the access times of files after reading them, so  that  it
              does not look like they have just been read.

       ‘-A, --append’
              Append  to  an  existing  archive.  Only works in copy-out mode.
              The archive must be a disk file specified  with  the  -O  or  -F
              (-file) option.

       ‘-b, --swap’
              Swap both halfwords of words and bytes of halfwords in the data.
              Equivalent to -sS.  This option may be  used  in  copy-in  mode.
              Use  this  option  to convert 32-bit integers between big-endian
              and little-endian machines.

       ‘-B’   Set the I/O block size to 5120 bytes.  Initially the block  size
              is 512 bytes.

       ‘--block-size=BLOCK-SIZE’
              Set the I/O block size to BLOCK-SIZE * 512 bytes.

       ‘-c’   Identical  to “-H newc”, use the new (SVR4) portable format.  If
              you wish the old portable (ASCII) archive format, use  “-H  odc”
              instead.

       ‘-C IO-SIZE, --io-size=IO-SIZE’
              Set the I/O block size to IO-SIZE bytes.

       ‘-d, --make-directories’
              Create leading directories where needed.

       ‘-E FILE, --pattern-file=FILE’
              Read additional patterns specifying filenames to extract or list
              from FILE.  The lines of FILE are treated as if  they  had  been
              non-option  arguments  to  cpio.  This option is used in copy-in
              mode,

       ‘-f, --nonmatching’
              Only copy files that do not match any of the given patterns.

       ‘-F, --file=archive’
              Archive filename to use instead of standard input or output.  To
              use  a tape drive on another machine as the archive, use a file-
              name that starts with ‘HOSTNAME:’.  The hostname can be preceded
              by a username and an ‘@’ to access the remote tape drive as that
              user, if you have permission to do so  (typically  an  entry  in
              that user’s ‘~/.rhosts’ file).

       ‘--force-local’
              With  -F,  -I,  or  -O, take the archive file name to be a local
              file even if it contains a colon, which would  ordinarily  indi-
              cate a remote host name.

       ‘-H FORMAT, --format=FORMAT’
              Use  archive format FORMAT.  The valid formats are listed below;
              the same names are also recognized in all-caps.  The default  in
              copy-in  mode is to automatically detect the archive format, and
              in copy-out mode is ‘bin’.

       ‘bin’  The obsolete binary format.

       ‘odc’  The old (POSIX.1) portable format.

       ‘newc’ The new (SVR4) portable format, which supports file systems hav-
              ing more than 65536 i-nodes.

       ‘crc’  The new (SVR4) portable format with a checksum added.

       ‘tar’  The old tar format.

       ‘ustar’
              The POSIX.1 tar format.  Also recognizes GNU tar archives, which
              are similar but not identical.

       ‘hpbin’
              The obsolete binary format used by  HPUX’s  cpio  (which  stores
              device files differently).

       ‘hpodc’
              The  portable  format  used  by HPUX’s cpio (which stores device
              files differently).

       ‘-i, --extract’
              Run in copy-in mode.  see “Copy-in mode”.

       ‘-I archive’
              Archive filename to use instead of standard  input.   To  use  a
              tape  drive  on  another  machine as the archive, use a filename
              that starts with ‘HOSTNAME:’.  The hostname can be preceded by a
              username  and  an  ‘@’  to  access the remote tape drive as that
              user, if you have permission to do so  (typically  an  entry  in
              that user’s ‘~/.rhosts’ file).

       ‘-k’   Ignored; for compatibility with other versions of cpio.

       ‘-l, --link’
              Link files instead of copying them, when possible.

       ‘-L, --dereference’
              Copy  the  file  that a symbolic link points to, rather than the
              symbolic link itself.

       ‘-m, --preserve-modification-time’
              Retain previous file modification times when creating files.

       ‘-M MESSAGE, --message=MESSAGE’
              Print MESSAGE when the end of a volume of the backup media (such
              as  a  tape  or a floppy disk) is reached, to prompt the user to
              insert a new volume.  If MESSAGE contains the string “%d”, it is
              replaced by the current volume number (starting at 1).

       ‘-n, --numeric-uid-gid’
              Show  numeric UID and GID instead of translating them into names
              when using the ‘--verbose option’.

       ‘--no-absolute-filenames’
              Create all files relative to the current  directory  in  copy-in
              mode, even if they have an absolute file name in the archive.

       ‘--absolute-filenames’ (default)
              Do not strip leading file name components that contain “..”  and
              leading slashes from file names in copy-in mode

       ‘--no-preserve-owner’
              Do not change the ownership of the files; leave  them  owned  by
              the  user  extracting  them.   This  is the default for non-root
              users, so that users on System V don’t inadvertently  give  away
              files.   This  option  can be used in copy-in mode and copy-pass
              mode

       ‘-o, --create’
              Run in copy-out mode.  see “Copy-out mode”.

       ‘-O archive’
              Archive filename to use instead of standard output.   To  use  a
              tape  drive  on  another  machine as the archive, use a filename
              that starts with ‘HOSTNAME:’.  The hostname can be preceded by a
              username  and  an  ‘@’  to  access the remote tape drive as that
              user, if you have permission to do so  (typically  an  entry  in
              that user’s ‘~/.rhosts’ file).

       ‘--only-verify-crc’
              Verify the CRC’s of each file in the archive, when reading a CRC
              format archive. Don’t actually extract the files.

       ‘-p, --pass-through’
              Run in copy-pass mode.  see “Copy-pass mode”.

       ‘--quiet’
              Do not print the number of blocks copied.

       ‘-r, --rename’
              Interactively rename files.

       ‘-R [user][:.][group], --owner [user][:.][group]’
              Set the ownership of all files created  to  the  specified  user
              and/or  group in copy-out and copy-pass modes.  Either the user,
              the group, or both, must be present.  If the  group  is  omitted
              but  the  “:”  or  “.”  separator is given, use the given user’s
              login group.  Only the super-user can change files’ ownership.

       ‘--rsh-command=COMMAND’
              Notifies cpio that is should use  COMMAND  to  communicate  with
              remote devices.

       ‘-s, --swap-bytes’
              Swap  the  bytes  of  each  halfword  (pair  of  bytes)  in  the
              files.This option can be used in copy-in mode.

       ‘-S, --swap-halfwords’
              Swap the halfwords of each word (4 bytes) in  the  files.   This
              option may be used in copy-in mode.

       ‘--sparse’
              Write  files  with  large blocks of zeros as sparse files.  This
              option is used in copy-in and copy-pass modes.

       ‘-t, --list’
              Print a table of contents of the input.

       ‘--to-stdout’
              Extract files to standard output.  This option may  be  used  in
              copy-in mode.

       ‘-u, --unconditional’
              Replace  all  files,  without asking whether to replace existing
              newer files with older files.

       ‘-v, --verbose’
              List the files processed, or with ‘-t’, give an  ‘ls  -l’  style
              table  of contents listing.  In a verbose table of contents of a
              ustar archive, user and group names in the archive that  do  not
              exist  on the local system are replaced by the names that corre-
              spond locally to the numeric UID and GID stored in the  archive.

       ‘-V, --dot’
              Print a ‘.’ for each file processed.

       ‘--version’
              Print the cpio program version number and exit.


EXAMPLES
       When  creating an archive, cpio takes the list of files to be processed
       from the standard input, and then sends the  archive  to  the  standard
       output,  or  to the device defined by the ‘-F’ option.  Usually find or
       ls is used to provide this list to the standard input.  In the  follow-
       ing example you can see the possibilities for archiving the contents of
       a single directory.

       % ls | cpio -ov > directory.cpio

       The ‘-o’ option creates the archive, and the  ‘-v’  option  prints  the
       names of the files archived as they are added.  Notice that the options
       can be put together after a single ‘-’ or can be placed  separately  on
       the  command  line.   The  ‘>’  redirects  the  cpio output to the file
       ‘directory.cpio’.

       If you wanted to archive an entire directory tree, the find command can
       provide the file list to cpio:

       % find . -print -depth | cpio -ov > tree.cpio

       This  will take all the files in the current directory, the directories
       below and place them in the archive tree.cpio.  Again the ‘-o’  creates
       an archive, and the ‘-v’ option shows you the name of the files as they
       are archived.  see “Copy-out mode”.  Using the ‘.’ in the  find  state-
       ment  will  give  you  more flexibility when doing restores, as it will
       save file names with a relative path vice a hard wired, absolute  path.
       The  ‘-depth’  option forces ‘find’ to print of the entries in a direc-
       tory before printing the directory itself.  This limits the effects  of
       restrictive  directory permissions by printing the directory entries in
       a directory before the directory name itself.

       Extracting an archive requires a bit more thought because cpio will not
       create  directories by default.  Another characteristic, is it will not
       overwrite existing files unless you tell it to.

       % cpio -iv < directory.cpio

       This will retrieve the files archived in the  file  directory.cpio  and
       place  them  in  the  present  directory.  The ‘-i’ option extracts the
       archive and the ‘-v’ shows the file names as they  are  extracted.   If
       you  are  dealing  with an archived directory tree, you need to use the
       ‘-d’ option to create directories as necessary, something like:

       % cpio -idv < tree.cpio

       This will take the contents of the archive tree.cpio and extract it  to
       the current directory.  If you try to extract the files on top of files
       of the same name that already exist (and have the same or later modifi-
       cation time) cpio will not extract the file unless told to do so by the
       -u option.  see “Copy-in mode”.

       In copy-pass mode,  cpio  copies  files  from  one  directory  tree  to
       another,  combining  the  copy-out  and  copy-in steps without actually
       using an archive.  It reads the list of files to copy from the standard
       input;  the  directory  into which it will copy them is given as a non-
       option argument.  see “Copy-pass mode”.

       % find . -depth -print0 | cpio --null -pvd new-dir

       The example shows copying the files of the present directory, and  sub-
       directories  to  a  new directory called new-dir.  Some new options are
       the ‘-print0’ available with  GNU  find,  combined  with  the  ‘--null’
       option  of  cpio.   These  two  options act together to send file names
       between find and cpio, even if special characters are embedded  in  the
       file  names.   Another  is  ‘-p’, which tells cpio to pass the files it
       finds to the directory ‘new-dir’.


BUGS
       The GNU folks, in general, abhor man pages, and create  info  documents
       instead.  The maintainer of cpio falls into  this  category.  Thus this
       man page may not be complete, nor current, and was included in the  Red
       Hat CVS tree because man is a great tool :).


REPORTING BUGS
       Please report bugs via https://bugzilla.redhat.com.


SEE ALSO
       The  full documentation for cpio is maintained as a Texinfo manual.  If
       the info and cpio programs are properly installed  at  your  site,  the
       command

              info cpio

       should  give  you access to the complete manual. The online copy of the
       documentation is available at the following address:

       http://www.gnu.org/software/cpio/manual




                                                                      CPIO(1L)

转载于:https://my.oschina.net/vimer/blog/134370

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值