GNU/Linux >> Belajar Linux >  >> Linux

Memulai Dengan Perintah Tar

Apa itu tar? Tar adalah singkatan dari "arsip pita" dan mengacu pada praktik dari hari-hari awal komputasi ketika data dicadangkan ke kaset. Terlepas dari asal usul nama yang nostalgia, tar sangat kuat dan menggunakan teknologi modern untuk mengarsipkan dan mengompresi file.

Segarkan dasar-dasar:Arsip vs Kompresi

Perintah tar penting untuk dipahami oleh pengguna Linux. Sebelum kita masuk terlalu jauh ke dalam subjek, mari kita mulai dengan sedikit klarifikasi.

  • Pengarsipan – Tindakan menyimpan banyak file sebagai satu file.
  • Kompresi – Tindakan mengecilkan file atau file yang lebih besar.

Tar adalah alat pengarsipan. Itu membuat satu file dari beberapa file. Ini menghemat bandwidth jaringan, waktu dan kekuatan pemrosesan saat mentransfer file. Satu file berukuran 100 MB membutuhkan waktu yang jauh lebih sedikit daripada mentransfer 100 file berukuran 1 MB karena overhead file.

Inilah sebabnya mengapa Anda akan sering menemukan perangkat lunak yang tersedia di 'tarball '. Tarball adalah istilah umum yang digunakan untuk file tar.

Meskipun tar sendiri tidak dapat mengompresi file, Anda dapat menggunakan salah satu algoritme kompresi umum untuk mengompresi file saat membuat tarball. Saya akan menunjukkan cara melakukannya nanti dalam tutorial tar dasar ini.

File tar umum

Berikut adalah beberapa "file tar" umum yang akan Anda temukan:

.Tar :Ini adalah file tarball. Ini hanya arsip dan tidak ada kompresi yang dilakukan.

.Tar.Gz atau .tgz :Ini adalah ekstensi arsip yang telah dikompresi dengan Gzip.

.Tar.Bz2 atau .tbz :Ini adalah ekstensi arsip yang telah dikompresi dengan Bz2. Ini adalah teknologi yang relatif baru. Ini memiliki rasio kompresi yang lebih tinggi, tetapi peningkatan daya penciutan berarti perlu waktu lebih lama untuk menyelesaikannya.

.Tar.xz atau .txz, dll. :Tar juga dilengkapi dukungan bawaan untuk xz, lzip, dan lainnya. Alat-alat ini terutama menggunakan algoritma kompresi yang sama, LZMA. 7z populer yang telah menjadi cukup umum di lingkungan Windows juga menggunakan algoritma ini. Perbedaan lebih lanjut dalam file dihasilkan dari struktur dan metadata. Saya tidak akan membahas detail ini dalam contoh kami, tetapi saya ingin menyebutkannya.

Penting untuk diingat bahwa ekstensi tidak diperlukan di Linux dan sistem berbasis Unix lainnya. Sistem Unix Anda biasanya dapat mengidentifikasi file dengan headernya terlepas dari ekstensinya, tetapi menggunakan skema penamaan yang umum dapat membantu menghindari kebingungan. Anda dapat menggunakan perintah file di Linux untuk mengetahui jenis file.

Contoh perintah tar

Untuk artikel ini, saya ingin mendemonstrasikan beberapa metode umum untuk mengarsipkan dan mengompresi file menggunakan tar.

Saya telah mengumpulkan beberapa file dari berbagai jenis di folder Dokumen saya. Ada gambar stok dan beberapa file teks. Kita akan melihat bagaimana ukuran file diubah oleh kompresi melalui beberapa contoh.

Berikut daftar lengkap dokumen yang akan digunakan.

[email protected]:~/Documents$ ll
total 7404
drwxr-xr-x  2 christopher christopher    4096 May  5 10:55 ./
drwxr-xr-x 17 christopher christopher    4096 May  5 10:59 ../
-rw-r--r--  1 christopher christopher 5094932 Apr 30 23:54 aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem1.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem2.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem3.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:56 lorem.txt
-rw-r--r--  1 christopher christopher 2411919 Apr 30 23:54 mountain-range-2397645.jpg

Saya sudah menyentuh kemampuan tar. Ini adalah alat yang ampuh dengan banyak pilihan. Berbagai opsi dan jenis file dapat membuat perintah tampak lebih rumit daripada yang sebenarnya. Seperti biasa, tujuan saya adalah untuk mengungkap baris perintah. Jadi, mari kita pecah menjadi bagian-bagian yang lebih kecil sebelum menggabungkan beberapa opsi dalam contoh.

Berikut adalah tabel opsi yang umum digunakan. Perlu diingat, ini baru permulaan. Saya sarankan untuk membaca sendiri dokumentasi bantuan untuk menemukan lebih banyak kemungkinan setelah Anda merasa nyaman.

Beralih Opsi Luas Deskripsi
-c, –buat buat arsip baru
-d, –diff, –bandingkan temukan perbedaan antara arsip dan sistem file
-r, –tambahkan menambahkan file ke akhir arsip
-t, –daftar mencantumkan isi arsip
-u, –perbarui hanya menambahkan file yang lebih baru daripada menyalin dalam arsip
-x, –ekstrak, –dapatkan mengekstrak file dari arsip
-j, –bzip2 filter arsip melalui bzip2
-z, –gzip, –gunzip, –ungzip filter arsip melalui gzip

1) Buat tarbal

Sebelumnya saya menyebutkan jenis file umum yang terkait dengan perintah tar. Ini mungkin yang paling dasar.

tar cvf output_tarball.tar source_directory

Kompresi tidak akan diterapkan sehingga file akan menempati setidaknya ruang sebanyak file dalam folder dokumen.

[email protected]:~$ tar cvf doc.tar ~/Documents

tar cvf (create, verbose, file-archive):ini membuat file tar baru bernama doc.tar dari semua file di ~/Documents.

[email protected]:~$ ll doc.tar
-rw-r--r-- 1 christopher christopher 7567360 May  5 11:00 doc.tar

Perhatikan bahwa tarball akan memiliki struktur direktori yang sama dengan direktori sumber tarball Anda.

2) Buat tarbal gzip

Mari kita coba kompresi gzip saat membuat tarball.

[email protected]:~$ tar cvzf doc.tar.gz ~/Documents

tar cvzf (create, verbose, g-zip, file-archive):ini membuat file tar baru bernama doc.tar.gz dari semua file di ~/Documents. Ini menggunakan kompresi gzip (dengan opsi z) saat membuat tarball.

[email protected]:~$ ll doc.tar.gz 
-rw-r--r-- 1 christopher christopher 7512498 May  5 11:01 doc.tar.gz

Seperti yang Anda lihat, ukuran tarball yang di-gzip adalah 54862 byte (53MB) lebih kecil dari bola tar normal yang tidak dikompresi.

Perhatikan saat menggunakan tanda hubung – dengan opsi tar

Biasanya, saat Anda menggunakan opsi dengan perintah Linux, Anda menambahkan tanda hubung (-) sebelum opsi.
Tanda hubung sebelum opsi tidak wajib dan sebaiknya dihindari. Inilah mengapa saya tidak menggunakannya dalam contoh.
Jika Anda menggunakan tanda hubung sebelum opsi, Anda harus selalu menyimpan f di akhir opsi. Jika Anda menggunakan tar -cvfz, z menjadi argumen untuk opsi z. Dan kemudian Anda akan melihat kesalahan seperti ini:

tar:doc.tar.gz:Tidak dapat stat:Tidak ada file atau direktori seperti itu

Inilah mengapa praktik yang baik adalah menggunakan opsi f di akhir semua opsi lain sehingga meskipun Anda menggunakan tanda hubung karena kebiasaan, itu tidak akan menimbulkan masalah.

3) Buat tarbal bz2

Katakanlah, Anda ingin membuat tarball bz2. Langkah-langkahnya sama dengan langkah sebelumnya. Anda hanya perlu mengubah opsi z (gzip) menjadi j (bz2). Lihat tabel opsi yang telah saya sebutkan sebelumnya.

[email protected]:~$ tar cvjf doc.tar.bz2 ~/Documents

tar cvfj (buat, verbose, tipe bz2, arsip file).

[email protected]:~$ ll doc.tar.bz2
-rw-r--r-- 1 christopher christopher 7479782 May  5 11:04 doc.tar.bz2

Perhatikan ukurannya? Ini bahkan lebih kecil dari tarball yang di-gzip.

4) Membuat daftar isi tarbal

Anda dapat menggunakan -t option (bukan -c) untuk melihat konten file arsip. Ini berfungsi sama apakah file dikompresi atau tidak. Ini akan mencantumkan ukuran file sebenarnya, bukan ukuran terkompresi.

[email protected]:~$ tar tvf doc.tar
drwxr-xr-x christopher/christopher 0 2020-05-05 10:55 home/christopher/Documents/
-rw-r--r-- christopher/christopher 5094932 2020-04-30 23:54 home/christopher/Documents/aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem1.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:56 home/christopher/Documents/lorem.txt
-rw-r--r-- christopher/christopher 2411919 2020-04-30 23:54 home/christopher/Documents/mountain-range-2397645.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem3.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem2.txt

5) Tambahkan lebih banyak file ke tarball

Anda dapat menambahkan file ke arsip tarball menggunakan -r . Anda tidak dapat menambahkan file ke arsip terkompresi tanpa mengekstraknya terlebih dahulu menggunakan perintah tar.

Anda juga dapat menambahkan menggunakan -u pilihan untuk pembaruan. Opsi ini seharusnya hanya menambahkan file baru menurut dokumen bantuan, tetapi dalam praktik saya, ini bekerja sama seperti menambahkan, menambahkan salinan baru dari semua file.

[email protected]:~$ tar rvf doc.tar ~/Documents/

6) Ekstrak tarball

Sekarang setelah Anda melihat bagaimana berbagai jenis kompresi memengaruhi ukuran file secara keseluruhan, mari kita lihat cara mengekstrak file tersebut.

[email protected]:~$ cd docs
[email protected]:~/docs$ tar xvf ~/doc.tar.gz 

Saya berubah menjadi direktori baru bernama docs. Kemudian saya menggunakan tar xvf (extract, verbose, file-archive) untuk membongkar konten di sini.

[email protected]:~/docs/home/christopher/Documents$ ls
aerial-view-of-bushes-on-sand-field-3876435.jpg  lorem1.txt  lorem2.txt  lorem3.txt  lorem.txt  mountain-range-2397645.jpg

Penting untuk dicatat bahwa tar mempertahankan struktur file sehingga ketika saya mengekstrak file, mereka berada di /home/christopher/Documents. Untuk menghindarinya, Anda dapat beralih ke direktori yang diinginkan (~/Documents) dan menyalin semua file menggunakan * wildcard alih-alih struktur direktori.

7) Ekstrak tarball ke direktori tertentu

Secara default, konten tarball diekstraksi di direktori saat ini. Itu tidak selalu diinginkan.

Anda dapat mengekstrak tarball ke direktori tertentu dengan cara berikut:

tar xvf tar_file -C destination_directory

Direktori tujuan harus ada jadi pastikan untuk menggunakan perintah mkdir untuk membuatnya terlebih dahulu.

Ringkasan

Inilah yang perlu Anda ingat saat menggunakan tar di Linux:
Ini hampir selalu digunakan dalam format tar cf atau tar xvf. Ingat ini:

  • c singkatan dari create:Anda menggunakannya untuk membuat tarball
  • x adalah singkatan dari extract:Anda menggunakannya untuk mengekstrak tarball
  • f singkatan dari file:Anda menggunakannya untuk nama file tar (untuk membuat atau mengekstrak). Coba gunakan di akhir opsi.
  • v singkatan verbose:Ini opsional tetapi menunjukkan apa yang terjadi dengan perintah.

    Tentu saja, Anda tidak dapat menggunakan opsi c dan x dalam perintah tar yang sama.

Kesimpulan

Apakah Anda menikmati panduan kami untuk perintah tar? Saya harap semua tips ini mengajarkan Anda sesuatu yang baru.

Jika Anda menyukai panduan ini, silakan bagikan di media sosial. Jika Anda memiliki komentar atau pertanyaan, tinggalkan di bawah.

Jika Anda memiliki saran untuk topik yang ingin Anda bahas, jangan ragu untuk meninggalkannya juga. Terima kasih telah membaca.


Linux
  1. Memulai dengan Zsh

  2. Memulai dengan perintah tac Linux

  3. Memulai dengan perintah cat Linux

  1. Memulai dengan ls

  2. Memulai PostgreSQL di Linux

  3. Memulai Dengan Multipass – Menjalankan VM Ubuntu

  1. Memulai dengan GnuCash

  2. Memulai dengan Etcher.io

  3. Memulai dengan ekspresi reguler