ekstrak file .bz2 yang diarsipkan di dalam arsip .tar dengan satu perintah

1

saya perlu mendekompresi file .bz2 di dalam arsip .tar (dekompresi dua langkah)

Sebagai contoh:

Request_files_1.tar

memiliki beberapa file .bz2 di dalamnya.

Bagaimana saya bisa mengekstraknya dengan satu perintah di linux. Saya sudah mencoba ini tetapi tidak berhasil.

tar -xvf asked_files_1.tar | bzip2 -d

FlyingMGET
sumber

Jawaban:

1

Pipa Anda tidak berfungsi karena tar tidak mengekstraksi file ke stdout, itu hanya daftar mereka. Oleh karena itu bzip2 mencoba untuk mendekompresi daftar nama file sebagai teks biasa , yang tentu saja, bukan isi file terkompresi (yaitu, itu menggunakan teks biasa sebagai isi file yang akan diekstraksi).

Untuk menggunakan output dari tar xvfsebagai daftar nama file untuk bzip2diekstrak, Anda dapat melakukan hal berikut:

bzip2 -d $(tar xvf requested_files_1.tar)

The vpilihan untuk tardi sini diperlukan untuk daftar file diekstrak untuk bzip2.

Achilleas
sumber
Ini adalah kode yang sempurna dan paling efisien. Itu bekerja dengan sempurna. bahkan lebih baik ketika saya meletakkan for for loop di dalam tanda kurung dan membuatnya berjalan untuk semua file tar di direktori itu. Terima kasih lagi. > bzip2 -d $ (untuk saya di * .tar; do tar xvf $ i; selesai)
FlyingMGET