This doesn't work:
tar xf /tmp/foo.tar.gz foo/bar
tar: foo/bar: Not found in archive
It's not obvious to me what would do this beyond extracting it in place and moving the files over.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityFrom man tar
:
-C directory
In c and r mode, this changes the directory before adding the
following files. In x mode, change directories after opening the
archive but before extracting entries from the archive.
i.e, tar xC /foo/bar -f /tmp/foo.tar.gz
should do the job.
(on FreeBSD, but GNU tar is basically the same in this respect, see "Changing the Working Directory" in its manual)
if you want to extract an tar archive elsewhere just cd to the destination directory and untar it there:
mkdir -p foo/bar
cd foo/bar
tar xzvf /tmp/foo.tar.gz
The command you've used would search the file foo/bar
in the archive and extract it.
Doing:
(cd foo/bar ; tar xf /tmp/foo.tar.gz )
would do the job.
Basically, what is does is spawning a new shell (the parentheses), in this subshell, change directory to foo/bar
and then untar the file.
You can change the ;
by a &&
to be sure the cd
works fine.
The command:
tar -xzvf foo.tar.gz -C /home/user/bar/
will extract the input file "foo.tar.gz", into the directory /home/user/bar
, while printing the processed files.
Change the directory where you want to extract
cd /u02/restore
if location of the extract file under /u01/backup.tar then
Extract as follows:
cd /u02/restore
tar -xvf /u01/backup.tar
tar -xf ancd.tar.gz my/name/file
you can give file name with ./file
after tar file.
tar -xf ancd.tar.gz ./my/name/file
if it is working means you have created a tar with ./
. use less command to see tar content.
less ...tar.file
I ran into what seems to be a similar issue and have resolved it.
The issue was in the file creation rather than the created file.
When attempting to tar up and transfer a file in dir A, I provided the path to the original file in the tar command
tar -cvf MyFile.tar /foo/bar/dir/not/needed/path/*
What I was able to do to resolve is
cd /foo/bar/dir/not/needed/
tar -cvf /tmp/MyFile.tar path*
On transferring and extracting the tarball, the required subdirs are created.
tar -xvf MyFile.tar