The command cpio allows us to copy files between archives and directories. There are three operation modes: output (-o), input (-i), and pass-through (-p).
To create an archive for directory tree src, we issue:
find src -print0 | cpio -ov0 > src.cpio
To extract files from its archive just created, we issue:
cpio -ivd < src.cpio
To copy files from directory tree src to directory des, we issue:
find src -print0 | cpio -pmd0 dest
To copy files from src to dest that are less than 2 days old and whose names contain 'txt', we issue:
find src -mtime -2 -print0 | grep txt | cpio -pmd0 dest
To copy files from src to dest that are less than 2 days old and which contain the word 'txt', we issue:
find src -mtime -2 | xargs grep -l txt | cpio -pmd0 dest
Combining with ssh (or, natcat if you are not concerned with security), cpio allows us to access remote hosts. Here are some example:
To backup the directory tree src on a remote host, we may issue:
find src -print0 | cpio -oaV0 -H tar -O user@remotehost:src.tar
which uses ssh to copy archive file from localhost to remote host.
To copy files from src to a remote host, we issue:
find src -print0 | cpio -oaV0 -H tar | ssh user@remotehost "cpio -imd"
No comments:
Post a Comment