Jawaban:
Dari 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.
yaitu, tar xC /foo/bar -f /tmp/foo.tar.gz
harus melakukan pekerjaan itu. (pada FreeBSD, tetapi tar GNU pada dasarnya sama dalam hal ini, lihat "Mengubah Direktori Kerja" di manual-nya )
Perbuatan:
(cd foo/bar ; tar xf /tmp/foo.tar.gz )
akan melakukan pekerjaan itu.
Pada dasarnya, apa yang dilakukan adalah memunculkan shell baru (tanda kurung), dalam subkulit ini, ubah direktori menjadi foo/bar
dan kemudian undar file.
Anda dapat mengubah ;
dengan a &&
untuk memastikan cd
berfungsi dengan baik.
tar -xf ancd.tar.gz my/name/file
Anda dapat memberikan nama file dengan ./file
file after tar.
tar -xf ancd.tar.gz ./my/name/file
jika berfungsi berarti Anda telah membuat tar ./
. gunakan lebih sedikit perintah untuk melihat konten tar.
less ...tar.file
Saya bertemu dengan apa yang tampaknya menjadi masalah serupa dan telah menyelesaikannya.
Masalahnya ada pada pembuatan file daripada file yang dibuat.
Ketika mencoba tar dan mentransfer file dalam dir A, saya memberikan path ke file asli di perintah tar
tar -cvf MyFile.tar /foo/bar/dir/not/needed/path/*
Apa yang bisa saya lakukan untuk menyelesaikannya adalah
cd /foo/bar/dir/not/needed/
tar -cvf /tmp/MyFile.tar path*
Saat mentransfer dan mengekstrak tarball, subdirat yang diperlukan dibuat.
tar -xvf MyFile.tar