Q. Can you explain how do I use cpio under Linux / UNIX?
A. 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. cpio command works just like tar, only better.
As I said earlier, cpio works like tar but it can read input from the "find" command. This is nifty feature. For example you can find out all *.c files and backup with cpio command.
# find / -name "*.c" | cpio -o --format=tar > c-file.backup.tarYou can also specify file name using -F option:
# find / -iname "*.pl" | cpio -o -H tar > perl-files.tar
# find / -iname "*.pl" | cpio -o -H tar -F perl-files.tarWhere,
- -o: Create archive
- -F: Archive filename to use instead of standard input or output. To use a tape drive on another machine as the archive.
- -H format: Specify file format to use.
- -i: Restore archive
You can extract archive with the following command:
# cpio -i -F perl-files.tarYou can list file inside archive i.e. list contents of the cpio file with following command:
# cpio -it -F perl-files.tarYou can write archive of /home to tape (drive /dev/nst0), type the following command:
# find /home | cpio -o -H tar -F /dev/nst0Restore backup using following command:
# cpio -i -F /dev/nst0Backup /home dir, to remote system tape drive:
# find /home | cpio -o -H tar -F firstname.lastname@example.org:/dev/nst0 --rsh-command=/usr/bin/ssh