Backing up multiple user data
Janina Sajka
janina at rednote.net
Wed Sep 29 23:02:41 EDT 2004
>From the book Running Linux available at BookShare:
7.1.4) tar Tricks
Because tar saves the ownership and permissions of files in the
archive and retains the full directory structure, as well as symbolic
and hard links,
using tar is an excellent way to copy or move an entire
directory tree from one place to another on the same system (or even
between different
systems, as we'll see). Using the - syntax described earlier, you
can write a tar file to standard output, which is read and extracted on
standard
input elsewhere.
For example, say that we have a directory containing two
subdirectories: from-stuff and to-stuff . from-stuff contains an entire
tree of files,
symbolic links, and so forth -- something that is difficult to
mirror precisely using a recursive cp . In order to mirror the entire
tree beneath
from-stuff to to-stuff , we could use the commands:
cd from-stuff tar cf - . | (cd ../to-stuff; tar xvf -)
Simple and elegant, right? We start in the directory from-stuff and
create a tar file of the current directory, which is written to standard
output.
This archive is read by a subshell (the commands contained within
parentheses); the subshell does a cd to the target directory,
../to-stuff (relative
to from-stuff , that is), and then runs tar xvf , reading from
standard input. No tar file is ever written to disk; the data is sent
entirely via pipe
from one tar process to another. The second tar process has the v
option that prints each file as it's extracted; in this way, we can
verify that the
command is working as expected.
In fact, you could transfer directory trees from one machine to
another (via the network) using this trick; just include an appropriate
rsh (or ssh )
command within the subshell on the right side of the pipe. The remote
shell would execute tar to read the archive on its standard input.
(Actually,GNU
tar has facilities to read or write tar files automatically from
other machines over the network; see the tar (1) manual page for
details.)
More information about the Speakup
mailing list