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

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

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

File yang memiliki .tar.gzatau .tar.bz2ekstensi adalah file arsip terkompresi. File dengan .tarekstensi saja tidak terkompresi, tetapi itu akan sangat jarang.

The .tarporsi ekstensi file singkatan t kera ar lokio, dan merupakan alasan bahwa kedua jenis file ini disebut file tar. File tar tertanggal kembali ke tahun 1979 ketika tarperintah dibuat untuk memungkinkan administrator sistem mengarsipkan file ke tape. Empat puluh tahun kemudian kami masih menggunakan tarperintah untuk mengekstrak file tar ke hard drive kami. Seseorang di suatu tempat mungkin masih menggunakan tarselotip.

The  .gzatau .bz2ekstensi akhiran menunjukkan bahwa arsip telah dikompresi, baik menggunakan gzipatau bzip2algoritma kompresi. The tarperintah akan bekerja dengan gembira dengan kedua jenis file, sehingga tidak masalah metode yang kompresi digunakan-dan itu harus tersedia di mana-mana Anda memiliki Bash shell. Anda hanya perlu menggunakan tar opsi baris perintah yang sesuai.

Mengekstrak File dari File Tar

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

Ayo ekstrak lagu ukulele:

tar -xvzf ukulele_songs.tar.gz 

Saat file diekstraksi, mereka terdaftar di jendela terminal.

Opsi baris perintah yang kami gunakan adalah:

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

Buat daftar file di direktori dengan lsdan Anda akan melihat bahwa direktori telah dibuat bernama Lagu Ukulele. File yang diekstrak ada di direktori itu. Dari mana asal direktori ini? Itu ada di dalam tarfile, dan diekstraksi bersama dengan file.

Sekarang mari kita ekstrak lagu gitarnya. Untuk melakukan ini kita akan menggunakan perintah yang hampir persis sama seperti sebelumnya tetapi dengan satu perbedaan penting. The .bz2ekstensi akhiran memberitahu kita telah dikompresi dengan menggunakan perintah bzip2. Alih-alih menggunakan opsi -z(gzip), kami akan menggunakan opsi -j(bzip2).

tar -xvjf guitar_songs.tar.bz2

Sekali lagi, file-file tersebut terdaftar ke terminal saat mereka diekstraksi. Agar jelas, opsi baris perintah yang kami gunakan taruntuk .tar.bz2file tersebut adalah:

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

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

Memilih Tempat Ekstrak File Ke

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 /

Mencari di direktori Documents / Songs kita, kita akan melihat direktori Guitar Songs telah dibuat.

Perhatikan bahwa direktori target harus sudah ada, tartidak akan membuatnya jika tidak ada. Jika Anda perlu membuat direktori dan tarmengekstrak file ke dalamnya 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 (orang tua) menyebabkan mkdiruntuk membuat direktori induk yang diperlukan, memastikan direktori target dibuat.

Mencari Di 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 tarfile sebelum Anda mengekstraknya dengan menggunakan opsi -t(daftar). Biasanya lebih mudah untuk menyalurkan output melalui lessperintah.

tar -tf ukulele_songs.tar.gz | kurang

Perhatikan bahwa kita tidak perlu menggunakan -zopsi untuk mendaftar file. Kami hanya perlu menambahkan -zopsi saat kami mengekstrak file dari .tar.gzfile. Demikian pula, kami tidak memerlukan -jopsi untuk mencantumkan file dalam tar.bz2file.

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

Kita dapat melihat bahwa direktori Lagu Ukulele berisi direktori yang disebut Random Songs, Ramones dan Possibles.

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 /"

Untuk mengekstrak satu file, berikan jalur dan nama file.

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

Anda dapat mengekstrak pilihan file dengan menggunakan wildcard, yang *mewakili string karakter ?apa pun dan mewakili karakter tunggal apa pun. Menggunakan wildcard membutuhkan penggunaan --wildcardsopsi.

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

Mengekstrak File Tanpa Mengekstrak Direktori

Jika Anda tidak ingin struktur direktori di file tar dibuat ulang di hard drive Anda, gunakan --strip-componentsopsi. The --strip-componentsopsi membutuhkan parameter numerik. Angka tersebut mewakili berapa banyak tingkat direktori yang akan diabaikan. File dari direktori yang diabaikan masih diekstraksi, tetapi struktur direktori tidak direplikasi di hard drive Anda.

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

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

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

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

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