Ini tidak berfungsi:
tar xf /tmp/foo.tar.gz foo/bar
tar: foo/bar: Not found in archive
Tidak jelas bagi saya apa yang akan dilakukan selain mengekstraksi pada tempatnya dan memindahkan file.
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 )
jika Anda ingin mengekstrak arsip tar di tempat lain, cukup cd ke direktori tujuan dan hapus di sana:
Perintah yang Anda gunakan akan mencari file
foo/bar
di arsip dan mengekstraknya.sumber
Perbuatan:
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 memastikancd
berfungsi dengan baik.sumber
Anda dapat memberikan nama file dengan
./file
file after tar.jika berfungsi berarti Anda telah membuat tar
./
. gunakan lebih sedikit perintah untuk melihat konten tar.sumber
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
Apa yang bisa saya lakukan untuk menyelesaikannya adalah
Saat mentransfer dan mengekstrak tarball, subdirat yang diperlukan dibuat.
sumber
Ubah direktori tempat Anda ingin mengekstrak
jika lokasi file ekstrak di bawah /u01/backup.tar lalu
Ekstrak sebagai berikut:
sumber
Perintah:
tar -xzvf foo.tar.gz -C /home/user/bar/
akan mengekstrak file input "foo.tar.gz", ke dalam direktori
/home/user/bar
, saat mencetak file yang diproses.sumber