On linux and other Unix like operating systems, you can untar a tar file with an absolute path to a different location. On Solaris using tar you can not. How do you get around this? Perderabo on the Unix for Advanced and Expert Users forum describes how. Here is an example (names and servers changed to protect the innocent):
you@yourserver:~ $ tar tvf data_backup.tar
-rwxrwx--- 13406/1201 2881056 Apr 26 19:29 2007 /apps/server/data/file
-rwxrwx--- 13406/1201 485376 Apr 26 19:29 2007 /apps/server/data/file.idx
you@yourserver:~ $ pax -r -s '=^/apps/server=/home/you=' < data_backup.tar
you@yourserver:~ $ ls -l /home/you/data/
total 6624
-rwxr-x--- 1 d292462 strata 2881056 Apr 26 19:29 file
-rwxr-x--- 1 d292462 strata 485376 Apr 26 19:29 file.idx
The key is the string given to pax '=^/apps/server=/home/you='. The /apps/server is the path you are replacing and the /home/you is the new path you are forcing tar to untar to. Mix and match as required. But the first string (/apps/server) is the part of the absolute path of each tarred file.
Now get to it.
Sunguy said,
April 5, 2012 @ 01:52
Awesome!
Udit said,
July 21, 2015 @ 17:42
Unbelievable!!!! You rock!
RSS feed for comments on this post · TrackBack URI