| |

Contoh Perintah Tar di Linux Kompresi dan Ekstrak file.

Perintah tar di Linux merupakan kependekan dari tape archive, Yang umumnya banyak digunakan untuk melakukan kompresi sekumpulan file dan folder. tar umumnya sudah terinstall pada banyak variant Linux sehingga sangat mudah dalam penggunaannya.

Keuntungan tar :

  • Memiliki tingkat kompresi hingga 50% dari Ukuran Data Asli.
  • Tidak merubah struktur dan permission file atau direktori, yang mana hal ini penting untuk Linux.

Artikel berikut akan membahas Perintah tar beserta contoh penggunannya, meliputi bagaimana membuat arsip file atau direktori dengan(.tar, .tar.gz, dan .tar.gz) kompresi, ekstraksi dan menyunting info dari arsip :

Membuat Arsip .tar

Berikut ini contoh membuat Arsip .tar dari sekumpulan file dan direktori. Pada contoh ini direkotri /home/coba akan diarsipkan dengan nama arsip website.tar

# tar -cvf coba-010823.tar /home/coba
tar: Removing leading `/' from member names
/home/coba/
/home/coba/buah.txt
/home/coba/src/
/home/coba/src/hitung
/home/coba/src/hitung.sh
# ll
total 16
-rw-------. 1 root root  1569 Mar  5 12:59 anaconda-ks.cfg
-rw-r--r--  1 root root 10240 Aug  2 12:47 coba-010823.tar
  • c : untuk membuat file .tar baru
  • v : menunjukkan deskripsi verbose dari proses kompresi
  • f : nama file

Hasil dari arsip adalah full path /home/coba. Ketika di ekstrak akan direktori /home akan tercipta. Jika tidak ingin ada tampilan deksirpsi verbose -v bisa diabaikan, karena fungsi verbose untuk melihat deksripsi kerja dari perintah.

Jika ingin pengarsipan hanya direktori /coba tanpafull path direktori /home/coba bisa meggunakan Opsi -C seperti dibawah ini.

# tar -cvf coba-010823.tar -C /home/ coba
OR
# tar -cvf coba-010823.tar --direcotry=/home coba
coba/
coba/buah.txt
coba/src/
coba/src/hitung
coba/src/hitung.sh
  • C, --directory=Dir : adalah opsi untuk Change Direoctory berfungsi untuk merubah Direktori aktif..

Dengan opsi -C / --directory=/home ekseksui perintah tar berada didalam direktori /home sehingga tidak dicatat dalam arsip. Fungsi yang hampir sama dengan perintah cd.

Membuat Arsip .tar.gz

File .tar.gz pada dasarnya adalah proses arsip dengan tar dan kompresi dengan gzip, memiliki ke unggulan manajemen arsip tar dan kompresi gzip. Berikut contoh dengan target /home/coba.

ekstensi file .tar.gz dan .tgz adalah format file yang sama jadi tidak masalah menggunakan salah satu dari kedua ekstensi tersebut.

# tar -zcvf coba.tar.gz /home/coba
tar: Removing leading `/' from member names
/home/coba/
/home/coba/buah.txt
/home/coba/src/
/home/coba/src/hitung
/home/coba/src/hitung.sh
# ll -h
total 16K
-rw-r--r-- 1 root root 10K Aug  2 13:04 coba-010823.tar
-rw-r--r-- 1 root root 767 Aug  2 13:33 coba.tar.gz
  • z, --gzip : opsi untuk filter melalui gunzip

Jika dibandingkan arsip file coba.tar.gz memiliki ukuran file lebih kecil dari file coba-010823.tar.

Membuat Arsip .tar.bz2

File .tar.bz2 memiliki metode arsip yang sama dengan .tar.gz. Perbedaan utamanya adalah di fitur kompresi di bz2 yang lebih padat sehingga memiliki ukuran file lebih sedikit dari gz. Contoh dibawah ini diterapkan ke direktori /home/coba.

ekstensi file .tar.bz2 dan .tbz adalah format file yang sama jadi tidak masalah menggunakan salah satu dari kedua ekstensi tersebut.

# tar -jcvf coba.tar.bz2 /home/coba
tar: Removing leading `/' from member names
/home/coba/
/home/coba/.bash_logout
/home/coba/.bash_profile
/home/coba/.bashrc
/home/coba/buah.txt
/home/coba/src/
/home/coba/src/hitung
/home/coba/src/hitung.sh
/home/coba/.bash_history
# ll
total 20
-rw-r--r--. 1 root root 10240 Aug  2 23:59 coba.tar
-rw-r--r--. 1 root root  1202 Aug  2 23:59 coba.tar.bz2
-rw-r--r--. 1 root root  1317 Aug  2 23:57 coba.tar.gz
  • j, --bzip2 : opsi untuk filter arsip dengan bzip2
Ekstrak file .tar

Untuk melakukan ekstraksi file dengan perintah tar pastikan lokasi path direktori karena akan overwrite atau menimpa file. Contoh dibawah menerapkan dengan pada file coba.tar hasil arsip sebelumnya.

# tar -xvf coba.tar
home/coba/
home/coba/.bash_logout
home/coba/.bash_profile
home/coba/.bashrc
home/coba/buah.txt
home/coba/src/
home/coba/src/hitung
home/coba/src/hitung.sh
home/coba/.bash_history
# tree home/
home/
└── coba
    ├── buah.txt
    └── src
        ├── hitung
        └── hitung.sh

2 directories, 3 files
  • x : opsi untuk melakukan kestraksi .tar atau tarball.

Perintah ini akan melakukan ekstraksi keseluruhan file lengkap dengan path direktorinya. Hati-hati melakukannya ekstraksi usahakan tidak dilakukan di path yang sama karena akan menimpa file dengan file hasil ekstraksi.

Untuk proses ekstrak yang lebih aman bisa menggunakan opsi -C ,Change Directory, seperti dibawah ini.

# tar -xvf coba.tar -C /tmp
home/coba/
home/coba/tes
home/coba/src/
home/coba/src/hitung
home/coba/src/hitung.sh
home/coba/.bash_logout
home/coba/.bash_profile
home/coba/.bashrc
home/coba/buah.txt
home/coba/.bash_history
# tree /tmp/home
/tmp/home
└── coba
    ├── buah.txt
    ├── src
    │   ├── hitung
    │   └── hitung.sh
    └── tes

2 directories, 4 files

Perintah tar akan di eksekusi di direktori /tmp. Dan hasil ekstrak akan berada di /tmp. Bisa dilihat hasilnya tree nya pada output di atas.

Ekstrak file .tar.gz

Untuk dekompresi file .tar.gz bisa lihat contoh dibawah ini, penerapan pada file coba.tar.gz yang di kompressi sebelumnya. Opsi yang utama digunakan adalah z, x dan f.

# tar -zxvf coba.tar.gz
home/coba/
home/coba/tes
home/coba/src/
home/coba/src/hitung
home/coba/src/hitung.sh
home/coba/.bash_logout
home/coba/.bash_profile
home/coba/.bashrc
home/coba/buah.txt
home/coba/.bash_history

Bisa juga di kombinasikan dengan opsi C untuk ekstraksi ke direktori tertentu.

Ekstrak file .tar.bz2

Untuk dekompresi file .tar.bz2 bisa lihat contoh dibawah ini, penerapan pada file coba.tar.bz2 yang di kompressi sebelumnya. Opsi yang utama digunakan adalah j, x dan f. Opsi C digunakan agar ekstraksi di tempatkan di direktori /tmp

# tar -jxvf coba.tar.bz2 -C /tmp
home/coba/
home/coba/tes
home/coba/src/
home/coba/src/hitung
home/coba/src/hitung.sh
home/coba/.bash_logout
home/coba/.bash_profile
home/coba/.bashrc
home/coba/buah.txt
home/coba/.bash_history
Melihat List File dan Direktori yang ada didalam File arsip.

melihat isi file dalam Arsip baik file .tar, tar.gz dan tar.bz2 menggunakan opsi yang sama. Contoh pertama melihat list file dari arsip .tar.gz

# tar -tvf coba.tar
OR
# tar -tvf coba.tar.bz2
OR
# tar -tvf coba.tar.gz
drwx------ coba/coba         0 2023-08-02 23:21 home/coba/
-rw-r--r-- root/root         0 2023-08-03 00:22 home/coba/tes
drwxrwxr-x coba/coba         0 2023-08-02 23:21 home/coba/src/
-rw-rw-r-- coba/coba       226 2023-08-02 23:20 home/coba/src/hitung
-rw-rw-r-- coba/coba       633 2023-08-02 23:21 home/coba/src/hitung.sh
-rw-r--r-- coba/coba        18 2022-08-03 08:38 home/coba/.bash_logout
-rw-r--r-- coba/coba       141 2022-08-03 08:38 home/coba/.bash_profile
-rw-r--r-- coba/coba       376 2022-08-03 08:38 home/coba/.bashrc
-rw-rw-r-- coba/coba       362 2023-08-02 23:19 home/coba/buah.txt
-rw------- coba/coba       183 2023-08-02 23:21 home/coba/.bash_history

Opsi wajib yang digunakan adalah t dan f, sedang v disini untuk deskripsi verbose menampilan detail lebih lengkap, seperti permission file dan ownership.

Ekstrak Spesifik File dan Direktori dari Arsip.

Pada kondisi tertentu user membutuhkan file atau direktori tertentu untuk di ekstrak. Perintah Tar mendukung ekstraksi file atau direktori tertentu dengan bentuk perintah seperti dibawah ini.

Penerapan pada file coba.tar.gz ingin mengekstrak file buah.txt. Contoh penerapan bisa dilihat dibawah ini.

# tar -zxvf coba.tar.gz home/coba/buah.txt
home/coba/buah.txt

Atau ekstrak data dari direktori terentu /home/src, ekstraksi akan bersifat recursive jika ada direktori atau file lainnya di sub direktori akan ikut di ekstrak. Seperti contoh dibawah ini.

#  tar -zxvf coba.tar.gz home/coba/src
home/coba/src/
home/coba/src/hitung
home/coba/src/hitung.sh
home/coba/src/upload/
home/coba/src/upload/file.php
Ekstrak Dengan Wildcards.

Jika kalian yang di ekstrak hanya direktori tertentu tanpa sub direktori gunakan perintah berikut. Gunakan wildcard *.* seperti contoh dibawah ini.

#  tar -zxvf coba.tar.gz home/coba/src/*.*
home/coba/src/
home/coba/src/hitung
home/coba/src/hitung.sh

Penggunaan wildcard untuk ekstraksi file dengan pattern tertentu, misal contoh dibawah ini melakukan kestraksi pada file .php dengan awal OA.

# tar -zxvf PHPMailer-master.tar.gz --wildcards "*OA*.php"
OR
#tar -zxvf PHPMailer-master.tar.gz *OA*.php
PHPMailer-master/src/OAuth.php
PHPMailer-master/src/OAuthTokenProvider.php

Pada penulisan wilcards diatas adalah *OA*.php kenapa tidak OA*.php, Karena di tar info nama file beserta pathnya dianggap satu.

Ekstrak File dimana case sensitive diabaikan

Pada contoh dibawah ini akan menampilkan file yang mengandung karakter oa baik Huruf Kapital atau Huruf Kecil. Opsi yang dibutuhkan adalah --ignore-case

# tar -zxvf PHPMailer-master.tar.gz --ignore-case *oa*.php
PHPMailer-master/get_oauth_token.php
PHPMailer-master/src/OAuth.php
PHPMailer-master/src/OAuthTokenProvider.php
Mengabaikan anchor pada path nama file.

Jika sub direktori yang di tuju sangatlah panjang untuk mempersingkat kerja bisa menggunakan opsi --no-anchored yang mengabaikan full path anchor nama. Pada contoh dibawah ini penggunaan opsi tersebut untuk mencapai direktori yang ingin di ekstrak src.

#  tar -zxvf PHPMailer-master.tar.gz --no-anchored --ignore-case src/oa*.php
PHPMailer-master/src/OAuth.php
PHPMailer-master/src/OAuthTokenProvider.php
Menambahkan file atau direktori ke dalam arsip yang sudah ada.

Penambahan file dan direktori ke arsip yang sudah ada bisa mengunakan opsi -r. Contoh dibawah ini menambahkan file index.php dan direktori view ke file arsip coba.tar.

# tar -rvf coba.tar views/ index.php
views/
views/activate.php
views/config.php
views/connect-jp.php
views/enter.php
views/get.php
views/notice.php
views/predefined.php
views/setup.php
views/start.php
views/stats.php
views/title.php
index.php

Untuk penambahan saat ini hanya bisa dilakukan pada file arsip .tar saja.

Menghapus file atau direktori dari arsip

Untuk menghapus bisa menggunakan opsi –delete, Contoh dibawah ini menghapus file home/coba/buah.txt dan direktori home/coba/src dari arsip coba.tar

# tar --delete -f coba.tar home/coba/src home/coba/buah.txt

Sama dengan penambahan penghapusan ini saat ini hanya bisa untuk file arsip .tar

Summary

Perintah tar merupakan perintah yang sangat powerfull dengan jenis format arsip dan kompresi yang bisa di buka dibanyak OS selain linux, bahkan windows dan macOS pun bisa menggunakan hasil arsip dan kompresi tar.

Similar Posts

5 1 vote
Article Rating
Subscribe
Notify of
guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments