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

Fail tar adalah arkib termampat. Anda akan menemui mereka dengan kerap semasa menggunakan sebaran Linux seperti Ubuntu atau bahkan semasa menggunakan terminal di macOS. Inilah cara mengekstrak — atau mencabut — kandungan fail tar, yang juga dikenali sebagai tarball.

Apakah maksud .tar.gz dan .tar.bz2?

Fail yang mempunyai .tar.gzatau .tar.bz2ekstensi adalah fail arkib yang dimampatkan. Fail dengan hanya .tarsambungan tidak dikompresi, tetapi fail tersebut jarang berlaku.

The .tarbahagian sambungan fail bermaksud t ape ar kucai, dan adalah alasan bahawa kedua-dua jenis fail dipanggil fail tar. Fail tar bermula sejak 1979 ketika tararahan dibuat untuk membolehkan pentadbir sistem mengarkibkan fail ke pita. Empat puluh tahun kemudian kami masih menggunakan tararahan untuk mengekstrak fail tar ke cakera keras kami. Seseorang di suatu tempat mungkin masih menggunakan tarpita.

The  .gzatau .bz2lanjutan akhiran menunjukkan bahawa arkib telah dimampatkan, menggunakan sama ada gzipatau bzip2algoritma pemampatan. The tararahan akan bekerja bahagia dengan kedua-dua jenis fail, jadi ia tidak kira kaedah mampatan telah digunakan dan ia perlu disediakan di mana-mana anda mempunyai Bash shell. Anda hanya perlu menggunakan tar pilihan baris perintah yang sesuai .

Mengekstrak Fail dari Tar Files

Katakan anda telah memuat turun dua fail muzik lembaran. Satu fail dipanggil ukulele_songs.tar.gz, yang lain dipanggil guitar_songs.tar.bz2. Fail-fail ini ada di direktori Muat turun.

Mari kita ekstrak lagu ukulele:

tar -xvzf ukulele_songs.tar.gz 

Semasa fail diekstrak, fail tersebut disenaraikan di tetingkap terminal.

Pilihan baris arahan yang kami gunakan adalah:

  • -x : Ekstrak, ambil fail dari fail tar.
  • -v : Verbose, senaraikan fail semasa diekstrak.
  • -z : Gzip, gunakan gzip untuk menyahmampatkan fail tar.
  • -f : Fail, nama fail tar yang ingin kami tarbekerjasama. Pilihan ini mesti diikuti dengan nama fail tar.

Senaraikan fail dalam direktori lsdan anda akan melihat bahawa direktori telah dibuat bernama Lagu Ukulele. Fail yang diekstrak ada di direktori itu. Dari mana asalnya direktori ini? Itu terkandung dalam tarfile, dan diekstrak bersama dengan file.

Sekarang mari kita ekstrak lagu-lagu gitar. Untuk melakukan ini, kita akan menggunakan arahan yang hampir sama seperti sebelumnya tetapi dengan satu perbezaan penting. The .bz2lanjutan akhiran memberitahu kita ia telah dimampatkan menggunakan arahan bzip2 itu. Daripada menggunakan pilihan -z(gzip), kita akan menggunakan pilihan -j(bzip2).

tar -xvjf guitar_songs.tar.bz2

Sekali lagi, fail disenaraikan ke terminal kerana diekstrak. Untuk jelas, pilihan baris perintah yang kami gunakan taruntuk .tar.bz2fail adalah:

  • -x : Ekstrak, ambil fail dari fail tar.
  • -v : Verbose, senaraikan fail semasa diekstrak.
  • -j : Bzip2, gunakan bzip2 untuk menyahmampatkan fail tar.
  • -f : Fail, nama fail tar yang kita mahu tar berfungsi.

Sekiranya kita menyenaraikan fail dalam direktori Muat turun, kita akan melihat bahawa direktori lain yang disebut Guitar Songs telah dibuat.

Memilih Tempat Mengekstrak Fail Ke

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

tar -xvjf guitar_songs.tar.gz -C ~ / Dokumen / Lagu /

Melihat di direktori Dokumen / Lagu kami, kami akan melihat direktori Lagu Gitar telah dibuat.

Perhatikan bahawa direktori sasaran mesti ada, tartidak akan membuatnya jika tidak ada. Sekiranya anda perlu membuat direktori dan tarmengekstrak fail ke dalam semuanya dalam satu arahan, anda boleh melakukannya seperti berikut:

mkdir -p ~ / Dokumen / Lagu / Dimuat turun && tar -xvjf guitar_songs.tar.gz -C ~ / Dokumen / Lagu / Dimuat turun /

Pilihan -p (ibu bapa) menyebabkan mkdirmembuat direktori induk yang diperlukan, memastikan direktori sasaran dibuat.

Mencari Fail Dalam Sebelum Mengeluarkannya

Sejauh ini kita baru saja melakukan lompatan keimanan dan mengeluarkan fail yang tidak kelihatan. Anda mungkin ingin melihat sebelum melompat. Anda boleh menyemak kandungan tarfail sebelum mengekstraknya dengan menggunakan pilihan -t(senarai). Selalunya senang untuk mengeluarkan output melalui lessarahan.

tar -tf ukulele_songs.tar.gz | kurang

Perhatikan bahawa kita tidak perlu menggunakan -zpilihan untuk menyenaraikan fail. Kita hanya perlu menambahkan -zpilihan ketika kita mengekstrak fail dari .tar.gzfail. Begitu juga, kami tidak memerlukan -jpilihan untuk menyenaraikan fail dalam tar.bz2fail.

Dengan menelusuri output, kita dapat melihat bahawa semua yang ada di dalam file tar disimpan dalam direktori yang disebut Lagu Ukulele, dan di dalam direktori itu, terdapat fail dan direktori lain.

Kita dapat melihat bahawa direktori Lagu Ukulele mengandungi direktori yang disebut Lagu Rawak, Ramones dan Kemungkinan.

Untuk mengekstrak semua fail dari direktori dalam file tar, gunakan perintah berikut. Perhatikan bahawa jalan itu dibungkus dengan tanda petik kerana terdapat ruang di lorong.

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

Untuk mengekstrak satu fail, berikan jalan dan nama fail.

tar -xvzf ukulele_songs.tar.gz "Lagu Ukulele / 023 - Sayangku.odt"

Anda boleh mengekstrak pilihan fail dengan menggunakan wildcard, di mana *mewakili rentetan watak dan ?mewakili watak tunggal. Menggunakan wildcard memerlukan penggunaan --wildcardsopsyen.

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

Mengekstrak Fail Tanpa Mengekstrak Direktori

Sekiranya anda tidak mahu struktur direktori dalam fail tar dibuat semula pada cakera keras anda, gunakan --strip-componentspilihan tersebut. The --strip-componentspilihan memerlukan parameter berangka. Angka tersebut menunjukkan berapa banyak direktori yang harus diabaikan. Fail dari direktori yang diabaikan masih diekstrak, tetapi struktur direktori tidak ditiru pada cakera keras anda.

Sekiranya kita tentukan --strip-components=1dengan fail tar contoh kita, direktori Lagu Ukulele teratas dalam fail tar tidak dibuat pada cakera keras. File dan direktori yang akan diekstrak ke direktori tersebut diekstrak dalam direktori sasaran.

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

Hanya terdapat dua tahap penyenaraian direktori dalam fail tar contoh kami. Oleh itu, jika kita gunakan --strip-components=2, semua file diekstrak dalam direktori sasaran, dan tidak ada direktori lain yang dibuat.

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

Sekiranya anda melihat halaman manual Linux, anda akan melihat bahawa taria harus menjadi calon yang baik untuk tajuk "perintah yang mempunyai pilihan baris perintah paling banyak." Syukurlah, untuk membolehkan kami mengekstrak fail dari .tar.gzdan tar.bz2fail dengan tahap kawalan butiran yang baik, kami hanya perlu mengingat sebilangan kecil pilihan ini.