04. Using cpio

Another command similar to tar is cpio. This program allows you to create archives from lists of filenames. Additionally, it is used to extract tar archives and copy files from a source to a device or file.

The cpio command is especially useful since you don't need to create an intermediate file before moving it to another disk.

Three modes

There are three modes that come with the cpio command.

1) Copy-out mode

The copy-out mode, denoted with the -o or --create options, allow you to make an archive and copy files into it. Simply pass in a list of filenames (one per line) into the standard input.

An easily way to generate a list of filenames is with the find command.

$ find ./sample
$ find ./sample | cpio -o > /media/myusb/sample.cpio
1 block

This is great, but the file is uncompressed. To compress it, use gzip.

$ find ./sample | cpio -ov gzip > /media/myusb/sample.cpio.gz

Other options you may use include -v for verbose and -depth to specify folder depth.

2) Copy-in mode

Whereas copy-out mode creates an archive, we can use copy-in to extract the archive contents. Simply pass in the -i or --extract option, and pass in the archive through standard input.

$ cpio -i < /media/myusb/sample.cpio
# If compressed:
$ gunzip -c /media/myusb/sample.cpio.gz | cpio -i

The -c option of gunzipoutputs the contents to standard out.

3) Copy-pass mode

The third mode is copy-pass, which is useful for moving files from one directory tree to another without creating an intermediate archive. This mode can be thought of as a combination of the two mentioned above. To activate copy-pass mode, use -p or the --pass-through option.

More options

Here is a list of more options you can use with the cpio command.

Reset the access time of each file so it doesn't appear to have been read.
For use with copy-out mode - appends data to an existing archive.
Archive the filename instead of using the default standard in.
-I filename
Use specified filename instead of standard in.
Extract relative to the current directory, even if a full pathname is given.
-O filename
Use specified filename instead of default standard out.
Replace all files without asking for verification.

Aching back from coding all day?

Inversion Therapy Table

Aching back from coding all day? Try Back Problems

Stretch out your back and relieve your back muscles with inversion therapy. This device counteracts the forces of gravity on the body by decompressing and elongating the spine. By using this product just ten minutes a day, you can be well on your way to improved circulation and posture while relieving muscle aches, back pain and stress.

$$ Check price
119.98119.98Amazon 4.5 logo(1,700+ reviews)

More Back Problems resources

Take your Linux skills to the next level!

System Admin Handbook

Take your Linux skills to the next level! Try Linux & UNIX

This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.

$ Check price
74.9974.99Amazon 4.5 logo(142+ reviews)

More Linux & UNIX resources