Bisakah saya mengekstrak folder tertentu menggunakan tar ke folder lain?

14

Saya baru ke dunia Linux dan tampaknya telah mengalami hambatan. Aku tahu aku bisa mengekstrak arsip specifc menggunakan perintah tar xvfz archivename.tar.gz sampledir/namun bagaimana saya dapat mengekstrak sampledir/ke testdir/daripada jalan yang arsip dalam egcurrently arsip di jalan /tmp/archivename.tar.gzdan saya ingin mengambil samplediruntuk testdiryang di jalan /tmp/testdir.

Kacang Kacang Tanah
sumber

Jawaban:

19

Apa yang Anda cari adalah -Copsi:

$ man tar
<snip>

-C, --directory DIR
       change to directory DIR

Penggunaan, per contoh Anda:

$ tar xvzf archivename.tar.gz -C /tmp/testdir/ sampledir/

Juga, Anda mungkin tertarik untuk mengetahui bahwa versi modern dari tartidak memerlukan ztanda untuk mendekompres file yang di-gzip; mereka akan melihat itu .gzdan Lakukan Hal yang Benar secara otomatis.

Handyman5
sumber
Terima kasih. Lucunya saya mencobanya sebelum memposting pertanyaan dan gagal. Mungkin saya melewatkan opsi. Saya akan coba lagi.
PeanutsMonkey
Kecemerlangan. Saya selalu lupa tentang ini untuk arsip besar.
zmonteca
3

Anda tidak perlu bermain game gila dengan menghapus semuanya. Tar sepenuhnya mendukung hanya mengekstraksi subset file dalam arsip, seperti yang ditunjukkan pada contoh (sepele) berikut:

/tmp $ mkdir tarsrc
/tmp $ cd tarsrc
/tmp/tarsrc $ mkdir a b
/tmp/tarsrc $ touch a/aaa b/bbb
/tmp/tarsrc $ tar cf ../tartest.tar .
/tmp/tarsrc $ cd ..
/tmp $ mkdir tardest
/tmp $ cd tardest
/tmp/tardest $ tar xf ../tartest.tar ./a    
/tmp/tardest $ ls -R
.:
a/

./a:
aaa

Kuncinya adalah bahwa pathspec harus sama persis dengan isi tarfile. Jadi ketika Anda melakukan tar tf, jika jalan dimulai ./, Anda harus memasukkannya, dan jika tidak memilikinya, Anda harus meninggalkannya. Juga, jika Anda ingin mengekstrak sub-sub-sub-sub-sub-sub-path, itu akan berakhir pada level N dalam sistem file ketika Anda selesai.

womble
sumber
Terima kasih womble. Mungkin itu bukan contoh yang tepat untuk digunakan tetapi saya membandingkan tar ke Winzip, WinRAR, dll dan mungkin tar adalah perintah yang salah untuk digunakan namun melihat bahwa saya telah melihat contoh tar mengurai file gzip dan bzip, saya berharap saya bisa terapkan proses serupa mis. pilih file yang ingin Anda batalkan pengarsipan (tar melakukan ini) dan pilih jalur yang ingin Anda ekstrak (tar tidak melakukan ini kecuali saya berada di direktori tertentu).
PeanutsMonkey
Anda ingin -Copsi untuk tar, lalu.
womble