Risposte:
Da 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.
cioè, tar xC /foo/bar -f /tmp/foo.tar.gz
dovrebbe fare il lavoro. (su FreeBSD, ma GNU tar è sostanzialmente lo stesso in questo senso, vedi "Cambiare la directory di lavoro" nel suo manuale )
fare:
(cd foo/bar ; tar xf /tmp/foo.tar.gz )
farebbe il lavoro.
Fondamentalmente, ciò che fa è generare una nuova shell (le parentesi), in questa subshell, cambiare directory foo/bar
e quindi decomprimere il file.
È possibile modificare il ;
da a &&
per essere sicuri che cd
funzioni bene.
tar -xf ancd.tar.gz my/name/file
puoi dare il nome del file con ./file
after tar file.
tar -xf ancd.tar.gz ./my/name/file
se funziona significa che hai creato un tar con ./
. usa meno comando per vedere il contenuto di tar.
less ...tar.file
Ho riscontrato quello che sembra essere un problema simile e l'ho risolto.
Il problema era nella creazione del file piuttosto che nel file creato.
Durante il tentativo di tarare e trasferire un file in dir A, ho fornito il percorso al file originale nel comando tar
tar -cvf MyFile.tar /foo/bar/dir/not/needed/path/*
Quello che sono stato in grado di fare per risolvere è
cd /foo/bar/dir/not/needed/
tar -cvf /tmp/MyFile.tar path*
Al trasferimento e l'estrazione del tarball, vengono creati i sottodir richiesti.
tar -xvf MyFile.tar