Cara Mengekstrak File Dari File .tar.gz atau .tar.bz2 di Linux

Diterbitkan: 2022-01-29
Bash shell pada konsep desktop Unity
Fatmawati Achmad Zaenuri/Shutterstock.com

File tar adalah arsip terkompresi. Anda akan sering menemukannya saat menggunakan distribusi Linux seperti Ubuntu atau bahkan saat menggunakan terminal di macOS. Berikut ini cara mengekstrak—atau membuka tar—isi file tar, juga dikenal sebagai tarball.

Apa Arti .tar.gz dan .tar.bz2?

File yang memiliki ekstensi .tar.gz atau .tar.bz2 adalah file arsip terkompresi. File dengan hanya ekstensi .tar tidak dikompresi, tetapi itu akan sangat jarang.

Bagian .tar dari ekstensi file adalah singkatan dari t ape ar chive, dan merupakan alasan mengapa kedua jenis file ini disebut file tar. File tar berasal dari tahun 1979 ketika perintah tar dibuat untuk memungkinkan administrator sistem mengarsipkan file ke tape. Empat puluh tahun kemudian kami masih menggunakan perintah tar untuk mengekstrak file tar ke hard drive kami. Seseorang di suatu tempat mungkin masih menggunakan tar dengan selotip.

Akhiran ekstensi .gz atau .bz2 menunjukkan bahwa arsip telah dikompresi, menggunakan algoritme kompresi gzip atau bzip2 . Perintah tar akan bekerja dengan baik dengan kedua jenis file, jadi tidak masalah metode kompresi mana yang digunakan—dan itu harus tersedia di mana pun Anda memiliki shell Bash. Anda hanya perlu menggunakan opsi baris perintah tar yang sesuai.

Mengekstrak File dari File Tar

Katakanlah Anda telah mengunduh dua file lembaran musik. Satu file disebut ukulele_songs.tar.gz , yang lain disebut guitar_songs.tar.bz2 . File-file ini ada di direktori Downloads.

Dua file tar di direktori unduhan

Mari kita ekstrak lagu ukulele:

 tar -xvzf ukulele_songs.tar.gz
Iklan

Saat file diekstraksi, mereka terdaftar di jendela terminal.

Ekstraksi semua file dari file tar

Opsi baris perintah yang kami gunakan adalah:

  • -x : Extract, ambil file dari file tar.
  • -v : Verbose, daftar file yang sedang diekstrak.
  • -z : Gzip, gunakan gzip untuk mendekompresi file tar.
  • -f : File, nama file tar yang ingin kita tar . Opsi ini harus diikuti dengan nama file tar.

Daftar file dalam direktori dengan ls dan Anda akan melihat bahwa direktori telah dibuat bernama Lagu Ukulele. File yang diekstraksi ada di direktori itu. Dari mana direktori ini berasal? Itu terkandung dalam file tar , dan diekstraksi bersama dengan file.

Direktori Lagu Ukulele dibuat di direktori Unduhan

Sekarang mari kita ekstrak lagu-lagu gitar. Untuk melakukan ini, kita akan menggunakan perintah yang hampir sama persis seperti sebelumnya tetapi dengan satu perbedaan penting. Akhiran ekstensi .bz2 memberi tahu kita bahwa itu telah dikompresi menggunakan perintah bzip2. Alih-alih menggunakan opsi -z (gzip), kita akan menggunakan opsi -j (bzip2).

 tar -xvjf guitar_songs.tar.bz2 

Ekstrak file tar lagu gitar di folder Downloads

Sekali lagi, file terdaftar ke terminal saat diekstraksi. Agar jelas, opsi baris perintah yang kami gunakan dengan tar untuk file .tar.bz2 adalah:

  • -x : Ekstrak, ambil file dari file tar.
  • -v : Verbose, daftar file yang sedang diekstrak.
  • -j : Bzip2, gunakan bzip2 untuk mendekompresi file tar.
  • -f : File, nama file tar yang ingin kita tar.

Jika kita daftar file di direktori Download kita akan melihat bahwa direktori lain yang disebut Guitar Songs telah dibuat.

Direktori lagu gitar dibuat di direktori Unduhan

Memilih Tempat Mengekstrak File

Jika kita ingin mengekstrak file ke lokasi selain direktori saat ini, kita dapat menentukan direktori target menggunakan opsi -C (direktori yang ditentukan).

 tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Iklan

Melihat di direktori Documents/Songs kami, kami akan melihat direktori Guitar Songs telah dibuat.

Direktori lagu gitar dibuat di direktori Documents/Songs

Perhatikan bahwa direktori target harus sudah ada, tar tidak akan membuatnya jika tidak ada. Jika Anda perlu membuat direktori dan memiliki tar mengekstrak file ke dalamnya semua dalam satu perintah, Anda dapat melakukannya sebagai berikut:

 mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

Opsi -p (parents) menyebabkan mkdir membuat direktori induk yang diperlukan, memastikan direktori target dibuat.

Melihat ke Dalam File Tar Sebelum Mengekstraknya

Sejauh ini kami baru saja mengambil lompatan keyakinan dan mengekstrak file yang tidak terlihat. Anda mungkin ingin melihat sebelum melompat. Anda dapat meninjau konten file tar sebelum mengekstraknya dengan menggunakan opsi -t (daftar). Biasanya lebih mudah untuk menyalurkan output melalui perintah less .

 tar -tf ukulele_songs.tar.gz | lebih sedikit

Perhatikan bahwa kita tidak perlu menggunakan opsi -z untuk membuat daftar file. Kita hanya perlu menambahkan opsi -z saat mengekstrak file dari file .tar.gz . Demikian juga, kita tidak memerlukan opsi -j untuk membuat daftar file dalam file tar.bz2 .

Isi file tar disalurkan melalui less

Menggulir melalui output kita dapat melihat bahwa semua yang ada di file tar disimpan dalam direktori yang disebut Lagu Ukulele, dan di dalam direktori itu, ada file dan direktori lainnya.

Tampilan kedua dari konten file tar disalurkan melalui less

Iklan

Kita dapat melihat bahwa direktori Lagu Ukulele berisi direktori yang disebut Lagu Acak, Ramones, dan Kemungkinan.

Untuk mengekstrak semua file dari direktori dalam file tar gunakan perintah berikut. Perhatikan bahwa jalur dibungkus dengan tanda kutip karena ada spasi di jalur tersebut.

 tar -xvzf ukulele_songs.tar.gz "Lagu Ukulele/Ramones/" 

Mengekstrak satu folder dari file tar

Untuk mengekstrak satu file, berikan jalur dan nama file.

 tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt" 

Mengekstrak file tunggal dari file tar

Anda dapat mengekstrak pilihan file dengan menggunakan wildcard, di mana * mewakili string karakter apa pun dan ? mewakili setiap karakter tunggal. Menggunakan wildcard membutuhkan penggunaan opsi --wildcards .

 tar -xvz --wildcards -f ukulele_songs.tar.gz "Lagu Ukulele/Kemungkinan/B*" 

Mengekstrak lagu dari tar dengan wildcard

Mengekstrak File Tanpa Mengekstrak Direktori

Jika Anda tidak ingin struktur direktori dalam file tar dibuat ulang di hard drive Anda, gunakan opsi --strip-components . Opsi --strip-components memerlukan parameter numerik. Angka tersebut menunjukkan berapa banyak tingkat direktori yang harus diabaikan. File dari direktori yang diabaikan masih diekstraksi, tetapi struktur direktori tidak direplikasi di hard drive Anda.

Jika kita menentukan --strip-components=1 dengan contoh file tar kita, direktori teratas Lagu Ukulele dalam file tar tidak dibuat di hard drive. File dan direktori yang akan diekstraksi ke direktori itu diekstraksi di direktori target.

 tar -xvzf ukulele_songs.tar.gz --strip-components=1 

Mengekstrak file dari file tar dengan --strip-components=1

Iklan

Hanya ada dua tingkat direktori yang bersarang di dalam file tar contoh kami. Jadi jika kita menggunakan --strip-components=2 , semua file diekstraksi di direktori target, dan tidak ada direktori lain yang dibuat.

 tar -xvzf ukulele_songs.tar.gz --strip-components=2 

Mengekstrak file dari file tar dengan --strip-components=2

Jika Anda melihat halaman manual Linux, Anda akan melihat bahwa tar harus menjadi kandidat yang baik untuk judul "perintah yang memiliki opsi baris perintah paling banyak." Untungnya, untuk memungkinkan kita mengekstrak file dari file .tar.gz dan tar.bz2 dengan tingkat kontrol granular yang baik, kita hanya perlu mengingat beberapa opsi ini.

TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar