cpio ( GNU )

Updated Jun 2026 · Tested on Linux, Unix

C

o

P

y

I

n

O

ut

Usage: cpio [OPTION…] [destination-directory] GNU `cpio’ copies files to and from archives Examples:

Copy files named in name-list to the archive

cpio -o < name-list [> archive]

Extract files from the archive

cpio -i [< archive]

Copy files named in name-list to destination-directory

cpio -p destination-directory < name-list Main operation mode:

-i,

—extract

Extract

files from an archive (run in copy-in mode) -o, —create Create the archive (run in copy-out mode) -p, —pass-through Run in copy-pass mode

-t,

—list Print a table of contents of the input Operation modifiers valid in any mode:

—block-size=BLOCK-SIZE

Set the I/O block size to BLOCK-SIZE * 512 bytes

-B

Set the I/O block size to 5120 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=NUMBER

Set the I/O block size to the given NUMBER of bytes

—force-local

Archive file is local, even if its name contains colons

-f, —nonmatching

Only copy files that do not match any of the given patterns

-F, —file=[[USER@]HOST:]FILE-NAME

Use this FILE-NAME instead of standard input or output. Optional USER and HOST specify the user and host names in case of a remote archive

-H, —format=FORMAT

Use given archive FORMAT

-M, —message=STRING

Print STRING when the end of a volume of the backup media is reached

-n, —numeric-uid-gid

In the verbose table of contents listing, show numeric UID and GID

—quiet

Do not print the number of blocks copied

—rsh-command=COMMAND

Use remote COMMAND instead of rsh

-v, —verbose

Verbosely list the files processed

-V, —dot

Print a ”.” for each file processed

-W, —warning=FLAG

Control warning display. Currently FLAG is one of ‘none’, ‘truncate’, ‘all’. Multiple options accumulate. Operation modifiers valid only in copy-in mode:

-b, —swap

Swap both halfwords of words and bytes of halfwords in the data. Equivalent to -sS

-r, —rename

Interactively rename files

-s, —swap

bytes

Swap the bytes of each halfword in the files

-S, —swap-halfwords

Swap the halfwords of each word (4 bytes) in the files

—to-stdout

Extract files to standard output

-E, —pattern-file=FILE

Read additional patterns specifying filenames to extract or list from FILE

—only-verify-crc

When reading a CRC format archive, only verify the checksum of each file in the archive, don’t actually extract the files Operation modifiers valid only in copy-out mode:

-A, —append

Append to an existing archive.

-O [[USER@]HOST:]FILE-NAME

Archive filename to use instead of standard output. Optional USER and HOST specify the user and host names in case of a remote archive Operation modifiers valid only in copy-pass mode:

-l, —link

Link files instead of copying them, when possible Operation modifiers valid in copy-in and copy-out modes:

—absolute-filenames

Do not strip file system prefix components from the file names

—no-absolute-filenames

Create all files relative to the current directory Operation modifiers valid in copy-out and copy-pass modes:

-0, —null

A list of filenames is terminated by a null character instead of a newline

-a, —reset-access-time

Reset the access times of files after reading them

-I [[USER@]HOST:]FILE-NAME

Archive filename to use instead of standard input. Optional USER and HOST specify the user and host names in case of a remote archive

-L, —dereference

Dereference symbolic links (copy the files that they point to instead of copying the links).

-R, —owner=[USER][:.][GROUP]

Set the ownership of all files created to the specified USER and/or GROUP Operation modifiers valid in copy-in and copy-pass modes:

-d, —make-directories

Create leading directories where needed

-m, —preserve-modification-time

Retain previous file modification times when creating files

—no-preserve-owner

Do not change the ownership of the files

—sparse

Write files with large blocks of zeros as sparse files

-u, —unconditional

Replace all files unconditionally

-?, —help

give this help list

—usage

give a short usage message

—version

print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

Report bugs to <bug-cpio@gnu.org>.