2 ms·
Traditionally tar(1) was used as it preserves most metadata. Modern versions even include optional support for ACLs and extended atributes (xattr). It used to b
by pdkl95 10y ago
Traditionally tar(1) was used as it preserves most metadata. Modern versions even include optional support for ACLs and extended atributes (xattr). It used to be common to see command lines and scripts that piped "tar c" into "tar x" directly as a way of copying files while utilizing tar's metadata-preserving features.
Today, back-to-back tar is rarely needed, as cp itself already has options to preserve metadata. In particular, "-a","--archive" turns all the normal features (including --recursive), making metadata-preserving backups as easy as:
cp -a $SRC $DST
which is a shorthand for
cp --recursive --no-dereference \
--preserve=context,links,mode,ownership,timestamps,xattr
Just the "-a" option is enough for most simple local backups. Fancier backups are possible with cp's "--backup=numbered" and --reflink=auto features, but my favorite just-works solution for backups is rdiff-backup[1]. It preserves everything, uses rsync internally for minimal data transfer on incremental backups, and many more features.
[1] http://www.nongnu.org/rdiff-backup/ http://www.nongnu.org/rdiff-backup/
- jhallenworld 10y agoI still use tar, for example to copy an entire Linux distribution to a new drive is just: mount /dev/sdb1 /m tar cf - . --exclude=./m --exclude=./proc --exclude=./sys | (cd /m; umask 0; tar -xf -) mkdir /m/proc /m/sys grub-install --root-directory=/m /dev/sdb (except you must also adjust UUIDs in /etc/fstab)