tar - Menghapus komponen direktori terkemuka pada ekstraksi


104

Bagaimana Anda bisa mengekstrak hanya direktori target dan bukan pohon direktori lengkap?

kompres

tar cf /var/www/site.tar /var/www_bak/site

ekstrak

tar xf /var/www/site.tar -C /tmp

Ini akan menghasilkan:

/tmp/var/www/site

Bagaimana mungkin untuk menghindari seluruh pohon dir yang akan dibuat ketika file diekstraksi?

Apa yang saya ingin ekstrak untuk:

/tmp/site

Jawaban:


34

Mengapa tidak menggunakan -Copsi saat membuat:

$ tar cf /var/www/site.tar -C /var/www_bak/ site

1
TMTOWTDI. Itu akan bekerja juga, menggunakan -Copsi yang sama ;)
MikeyB

12
Dia ingin menghapus jalur dari beberapa komponen terkemuka, bukan mengubah direktori keluaran. Lihat di bawah untuk jawaban yang benar.
aymericbeaumet

4
Kami tidak dapat menggunakannya ketika orang lain menyiapkan arsip.

Karena `` `_t = awalan - $ (tanggal +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" - file ...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` `
AnrDaemon

258

Anda ingin menggunakan --strip-components=NUMBERopsi tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Perintah Anda adalah:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

19
Jawaban ini lebih baik karena Anda tidak perlu memikirkannya sebelum pembuatan tar. Anda dapat menggunakannya dengan file tar yang sudah dibuat. Terima kasih @MikeyB!
Fabien Quatravaux

4
Saya senang melaporkan ini berfungsi baik di GNU tar dan BSD tar.
Nathan Osman

4
dan karena Anda mungkin bukan pembuat tar ... (atau jika Anda melakukannya dengan alat lain dan alat itu melakukan hal-hal konyol ...)
xenoterracide

Anda mungkin masih kehilangan --strip-componentstanda jika Anda menggunakan implementasi embeddedbox dari tar.
sylvainulg

1
@FabienQuatravaux Ya, ya --- jika Anda melakukan kesalahan dan membuat arsip yang menyertakan direktori terkemuka yang tidak ingin Anda lihat selama ekstraksi. Tetapi lebih jelas untuk membangun arsip tanpa direktori terkemuka yang tidak diinginkan di tempat pertama.
Calaf
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.