Next: Restoring Intermediate Directories, Up: Recipes [Contents][Index]
This is a traditional way to copy a directory hierarchy preserving
the dates, modes, owners and link-structure of all the files therein.
It was used back when the cp
command lacked the -a
option:
$ (cd sourcedir; tar -cf - .) | (cd targetdir; tar -xf -)
You can avoid subshells by using -C option:
$ tar -C sourcedir -cf - . | tar -C targetdir -xf -
The same command using long option forms:
$ (cd sourcedir; tar --create --file=- . ) \ | (cd targetdir; tar --extract --file=-)
or
$ tar --directory sourcedir --create --file=- . \ | tar --directory targetdir --extract --file=-