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.gz
atau .tar.bz2
ekstensi adalah fail arkib yang dimampatkan. Fail dengan hanya .tar
sambungan tidak dikompresi, tetapi fail tersebut jarang berlaku.
The .tar
bahagian sambungan fail bermaksud t ape ar kucai, dan adalah alasan bahawa kedua-dua jenis fail dipanggil fail tar. Fail tar bermula sejak 1979 ketika tar
arahan dibuat untuk membolehkan pentadbir sistem mengarkibkan fail ke pita. Empat puluh tahun kemudian kami masih menggunakan tar
arahan untuk mengekstrak fail tar ke cakera keras kami. Seseorang di suatu tempat mungkin masih menggunakan tar
pita.
The .gz
atau .bz2
lanjutan akhiran menunjukkan bahawa arkib telah dimampatkan, menggunakan sama ada gzip
atau bzip2
algoritma pemampatan. The tar
arahan 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
tar
bekerjasama. Pilihan ini mesti diikuti dengan nama fail tar.
Senaraikan fail dalam direktori ls
dan 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 tar
file, 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 .bz2
lanjutan 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 tar
untuk .tar.bz2
fail 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, tar
tidak akan membuatnya jika tidak ada. Sekiranya anda perlu membuat direktori dan tar
mengekstrak 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 mkdir
membuat 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 tar
fail sebelum mengekstraknya dengan menggunakan pilihan -t
(senarai). Selalunya senang untuk mengeluarkan output melalui less
arahan.
tar -tf ukulele_songs.tar.gz | kurang
Perhatikan bahawa kita tidak perlu menggunakan -z
pilihan untuk menyenaraikan fail. Kita hanya perlu menambahkan -z
pilihan ketika kita mengekstrak fail dari .tar.gz
fail. Begitu juga, kami tidak memerlukan -j
pilihan untuk menyenaraikan fail dalam tar.bz2
fail.
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 --wildcards
opsyen.
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-components
pilihan tersebut. The --strip-components
pilihan 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=1
dengan 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 tar
ia harus menjadi calon yang baik untuk tajuk "perintah yang mempunyai pilihan baris perintah paling banyak." Syukurlah, untuk membolehkan kami mengekstrak fail dari .tar.gz
dan tar.bz2
fail dengan tahap kawalan butiran yang baik, kami hanya perlu mengingat sebilangan kecil pilihan ini.