tar (tape archive) menggabungkan banyak file ke satu arsip. Biasa dikombinasi dengan kompresi gzip/bzip2/xz.
Perintah paling umum (wajib hafal):
# CREATE — bungkus folder jadi archive terkompresi
tar -czf backup.tar.gz ./myfolder
# EXTRACT — buka archive
tar -xzf backup.tar.gz
# LIST — lihat isi tanpa ekstrak
tar -tzf backup.tar.gz
Flag breakdown:
| Flag | Arti |
|---|---|
-c |
Create archive |
-x |
Extract archive |
-t |
List contents |
-z |
gzip compression (paling umum) |
-j |
bzip2 compression (lebih kecil, lebih lambat) |
-J |
xz compression (terkecil, paling lambat) |
-f FILE |
Specify archive file (wajib) |
-v |
Verbose (tampilkan file yang diproses) |
Pola mnemonic:
createzipfile →tar -czf- e
xtractzipfile →tar -xzf
Ekstrak ke folder tertentu:
tar -xzf backup.tar.gz -C /tmp/restore/
# -C = change directory sebelum ekstrak
Include/exclude file:
tar -czf src.tar.gz --exclude="*.log" --exclude="node_modules" ./src
# Hanya file tertentu
tar -czf docs.tar.gz ./project --include="*.md"
Compression comparison:
| Format | Speed (compress) | Size | Extension |
|---|---|---|---|
gzip (-z) |
Cepat | Sedang | .tar.gz / .tgz |
bzip2 (-j) |
Sedang | Kecil | .tar.bz2 |
xz (-J) |
Lambat | Terkecil | .tar.xz |
Rule of thumb: gzip untuk backup harian, xz untuk distribusi/arsip jangka panjang.
zip / unzip (cross-platform dengan Windows):
zip -r archive.zip ./myfolder # -r untuk recursive
unzip archive.zip
unzip archive.zip -d /tmp/out # -d destination folder
unzip -l archive.zip # list contents
Pakai zip ketika file akan dibuka di Windows tanpa tool tambahan.
Perbandingan praktis:
# Ukuran file contoh source code 100MB:
tar -czf proj.tar.gz proj/ # ~30MB, 2 detik
tar -cjf proj.tar.bz2 proj/ # ~25MB, 8 detik
tar -cJf proj.tar.xz proj/ # ~20MB, 30 detik
zip -r proj.zip proj/ # ~32MB, 3 detik
Tips:
- Jangan lupa
./saat create — tanpa itu bisa ekstrak file ke path absolut - Cek sebelum ekstrak dengan
-tjika dari sumber tidak dipercaya (ada file/etc/passwddi dalam?) - Preserve permissions pakai
-p(penting untuk backup sistem) - Follow symlink pakai
-h(ikuti symlink alih-alih simpan sebagai link)
Bonus — progress indicator:
tar -czf - ./myfolder | pv > backup.tar.gz # pv = pipe viewer
Ekstrak berdasarkan ekstensi (auto-detect):
tar -xf unknown.tar.gz # gzip
tar -xf unknown.tar.bz2 # bzip2
tar -xf unknown.tar.xz # xz
# GNU tar auto-detect dari magic bytes, jadi -z/-j/-J opsional saat extract