Bagaimana kita bisa mengekstrak file tertentu dari file tar.gz besar? Saya menemukan proses mengekstraksi file dari tar dalam pertanyaan ini tetapi, ketika saya mencoba perintah yang disebutkan di sana, saya mendapatkan kesalahan:
$ tar --extract --file={test.tar.gz} {extract11}
tar: {test.tar.gz}: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Bagaimana cara mengekstrak file tar.gz
?
Jawaban:
Anda juga bisa menggunakan
tar -zxvf <tar filename> <file you want to extract>
Anda harus menulis nama file dengan tepat seperti yang
tar ztf test.tar.gz
ditunjukkan. Jika dikatakan misalnya./extract11
, atausome/bunch/of/dirs/extract11
, itulah yang harus Anda berikan (dan file tersebut akan muncul tepat di bawah nama itu, direktori yang diperlukan dibuat secara otomatis).-x
: menginstruksikan tar untuk mengekstrak file.-f
: menentukan nama file / nama tarball.-v
: Verbose (tampilkan kemajuan saat mengekstraksi file).-z
: filter arsip melalui gzip, gunakan untuk mendekompresi file .gz.sumber
$ tar -zxvf test.tar.gz extract11
tar: extract11: Not found in archive
tar: Error exit delayed from previous errors
tar tf archive.tar.gz | grep extract11
. Silakan periksa apakah extract11 ada di arsip atau tidaktar ztf test.tar.gz
ditunjukkan. Jika dikatakan misalnya./extract11
, atausome/bunch/of/dirs/extract11
, itulah yang harus Anda berikan (dan file tersebut akan muncul tepat di bawah nama itu, direktori yang diperlukan dibuat secara otomatis).-z
opsi ini tidak berfungsi di beberapa versi unix seperti HP-UX.f
tidak boleh di akhir. Tetapi harus langsung diikuti dengan nama file. Contoh ini dengan semua pilihan lain setelah nama tar bekerja dengan baik:tar -f mytar.tar.gz -zxv dir/somefile
. Itu mengekstrak "dir / somefile" dari "mytar.tar.gz".Mari kita asumsikan Anda memiliki tarball yang dipanggil
lotsofdata.tar.gz
dan Anda hanya tahu ada satu file di sana yang Anda inginkan tetapi yang dapat Anda ingat hanyalah bahwa namanya berisi kata tersebutcontract
. Anda memiliki dua opsi:Baik gunakan
tar
dangrep
untuk daftar isi tarball Anda sehingga Anda bisa mengetahui path lengkap dan nama file apa pun yang cocok dengan bagian yang Anda tahu, dan kemudian gunakantar
untuk mengekstrak satu file itu sekarang Anda tahu detail pastinya, atau Anda bisa menggunakan dua sedikit saklar yang dikenal untuk mengekstrak semua file yang cocok dengan sedikit yang Anda ketahui tentang nama file Anda — Anda tidak perlu tahu nama lengkap atau bagian mana pun dari jalurnya untuk opsi ini. Rinciannya adalah:Pilihan 1
Ini akan mencantumkan detail semua file yang namanya berisi bagian Anda yang diketahui. Kemudian Anda mengekstrak apa yang ingin Anda gunakan:
Anda mungkin perlu
./
di depan jalan Anda agar bisa berfungsi.pilihan 2
Terserah Anda yang menurut Anda lebih mudah atau paling berguna.
sumber
tar -xzf lotsofdata.tar.gz <full path and filename from your list above>
bekerja untuk saya tanpa memberi./
pada awal path lengkap--wildcards
opsi. Saya masih bisa mendapatkan perilaku serupa-x -O *foo
.*foo
adalah nama file glob dalam kasus saya, karena saya tahu file berakhir dengan foo.Saya mencoba mengekstrak beberapa ratus file dari tarball dengan ribuan file tempo hari. File yang saya butuhkan tidak dapat dirujuk oleh satu wildcard. Jadi saya mencari di Google dan menemukan halaman ini.
Namun, tidak ada trik di atas yang tampak bagus untuk tugas saya. Saya akhirnya membaca pria itu, dan menemukan opsi ini
--files-from
, jadi solusi terakhir saya adalahdan itu bekerja seperti pesona.
Pembaruan: File daftar harus memiliki format yang sama seperti yang Anda lihat
tar -tvf
, jika tidak, Anda tidak akan dapat mengekstrak file apa pun.sumber
Contoh Anda cocok untuk saya jika Anda tidak menggunakan kawat gigi
Jika ekstrak file Anda11 dalam subfolder, Anda harus menentukan lintasan di dalam tarball.
sumber
$ tar --extract --file=test.tar.gz extract11
tar: extract11: Not found in archive
tar: Error exit delayed from previous errors
Silakan temukan di bawah ini contoh mengekstraksi file tertentu dari file tar.gz.
Dari file lokal:
Dari URL jarak jauh:
sumber