Pendahuluan
GNU tar
(kependekan dari T kera AR chiver) command adalah utilitas pengarsipan yang paling banyak digunakan di sistem Linux. Tersedia langsung di terminal, tar
command membantu membuat, mengekstrak, dan membuat daftar konten arsip.
Utilitasnya sederhana dan memiliki banyak opsi berguna untuk mengompresi file, mengelola cadangan, atau mengekstrak instalasi mentah.
Tutorial ini menunjukkan cara menggunakan perintah tar melalui contoh dan opsi yang tersedia.
Prasyarat
- Sistem yang menjalankan Linux.
- Akses ke baris perintah/terminal.
- File atau file untuk menguji perintah.
Sintaks Perintah Tar
tar
sintaks perintah umum adalah:
tar <operation mode> <option(s)> <archive> <file(s) or location(s)>
- Mode operasi menunjukkan operasi mana yang dijalankan pada file (pembuatan, ekstraksi, dll.). Perintah tersebut mengizinkan dan hanya membutuhkan satu operasi.
- Opsi memodifikasi mode operasi dan tidak perlu. Tidak ada batasan jumlah opsi.
- Arsip adalah nama file dan ekstensinya.
- Nama file adalah daftar yang dipisahkan spasi untuk ekstraksi atau kompresi atau nama yang cocok dengan karakter pengganti.
Ada tiga kemungkinan gaya sintaks untuk menggunakan operasi dan opsi:
1. Gaya tradisional , dikelompokkan bersama tanpa tanda hubung.
Misalnya:
tar cfv <archive> <file(s) or location(s)>
2. Gaya opsi pendek UNIX , menggunakan satu tanda hubung dan opsi berkerumun:
tar -cfv <archive> <file(s) or location(s)>
Atau, tanda hubung sebelum setiap opsi:
tar -c -f -v <archive> <file(s) or location(s)>
3. Gaya opsi panjang GNU dengan tanda hubung ganda dan nama opsi deskriptif:
tar --create --file <archive> --verbose <file(s) or location(s)>
Ketiga gaya dapat digunakan dalam satu tar
perintah.
Opsi Perintah Tar
Tabel berikut menguraikan tar
. yang umum digunakan operasi dan opsi.
Perintah | Peran | Deskripsi |
---|---|---|
--create -c | Operasi | Membuat arsip baru. |
--list -t | Operasi | Mencantumkan isi arsip. |
--extract -x | Operasi | Ekstrak satu atau beberapa item dari arsip. |
--append -r | Operasi | Menambahkan file ke arsip yang ada. |
--concatenate -A | Operasi | Menambahkan arsip ke arsip yang ada. |
--compare --diff -d | Operasi | Membandingkan anggota arsip dengan file di sistem. |
--delete | Operasi | Menghapus anggota dari arsip. |
--update -u | Operasi | Memperbarui arsip dengan file baru hanya jika tidak ada dalam arsip dan lebih baru dari file yang ada. |
--file=<archive> -f <archive> | Opsi | Menentukan file. |
-C | Opsi | Mengubah direktori. |
--verbose -v | Opsi | Menampilkan file tar bekerja saat berjalan. |
--wildcard | Opsi | Merender opsi pencarian wildcard. |
--bzip2 -j | Opsi | Membaca atau menulis arsip terkompresi melalui format bzip2. |
--gzip -z | Opsi | Membaca atau menulis arsip terkompresi melalui format gzip. |
--xz -J | Opsi | Membaca atau menulis arsip terkompresi melalui format xz. |
Ikuti contoh di bagian berikutnya untuk mempelajari cara bekerja dengan tar .
Contoh Perintah Tar
Contoh di bawah ini memiliki persyaratan sebagai berikut:
1. Buat direktori bernama tar_examples dan arahkan ke direktori:
mkdir tar_examples && cd tar_examples
2. Buat direktori lain bernama file di tar_examples dan masuk ke direktori itu:
mkdir files && cd files
3. Buat file untuk mengisi file direktori:
touch file{0..100}.txt
Untuk kembali ke direktori induk, gunakan:
cd ..
Semua contoh di bawah ini bekerja dari tar_examples direktori.
1. Buat Arsip
Sintaks untuk membuat arsip tergantung pada jenis arsip. Untuk membuat arsip, gunakan tar
dengan -c
atau --create
operasi.
Buat Arsip tar
Untuk membuat arsip tar (juga disebut tarball), gunakan:
tar cf <archive name>.tar <file(s) or location(s)>
Misalnya, arsipkan file direktori:
tar cf files.tar files
Output mencantumkan setiap file yang ditambahkan ke arsip. Tampilkan konten direktori untuk melihat file.tar yang dibuat arsip:
tar cf files.tar files
Output mencantumkan setiap file yang ditambahkan ke arsip. Tampilkan konten direktori untuk melihat file.tar yang dibuat arsip:
ls -l
Buat Arsip Terkompresi tar.gz
Tambahkan -z
opsi untuk membuat file GNUzip (gzip) terkompresi:
tar czf <archive name>.tar.gz <file(s) or location(s)>
Misalnya:
tar czf files.tar.gz files
Ukuran file lebih kecil dari file tarball biasa dan direktori aslinya.
Buat Arsip Terkompresi tar.bz2
bzip2 adalah program kompresi file dan alternatif untuk gzip.
Untuk membuat tar.bz2 file, tambahkan -j
tag:
tar cjf <archive name>.tar.bz2 <file(s) or location(s)>
Misalnya:
tar cjf files.tar.bz2 files
bzip2 memiliki tingkat kompresi yang lebih besar dan membutuhkan waktu lebih lama dari gzip.
Buat Arsip tar.xz
Gunakan -J
tag untuk mengompresi arsip dalam format tar.xz:
tar cJf <archive name>.tar.xz <file(s) or location(s)>
Misalnya:
tar cJf files.tar.xz files
Kompresi xz memakan waktu paling lama jika dibandingkan dengan gzip dan bz2. Namun, dengan file yang lebih besar, xz memiliki tingkat kompresi tertinggi.
2. Hapus File Setelah Pembuatan
Untuk menghapus file dari disk setelah pengarsipan, gunakan --remove-files
pilihan di akhir:
tar cf <archive> <file(s) or location(s)> --remove-files
Misalnya, buat arsip tar dengan file direktori dan menghapusnya dari disk dalam satu perintah:
tar cf files.tar files --remove-files
Periksa isi direktori untuk memastikan operasi bekerja dengan benar.
3. Ekstrak dari Arsip
Mengekstrak dari arsip atau arsip terkompresi menggunakan -x
atau --extract
operasi dengan tar
. Opsi tambahan bergantung pada jenis file dan di mana tar harus mengekstrak komponen.
Ekstrak Dari Arsip tar
Sintaks umum untuk mengekstrak dari arsip tar adalah:
tar xf <archive name>.tar
Secara default, tar mengekstrak semua komponen ke direktori saat ini. Untuk menunjukkan tempat mengekstrak komponen, tambahkan -C
opsi dan tentukan jalurnya:
tar xfC <archive name>.tar <path>
Misalnya, untuk membuat direktori bernama extracted_tar dan ekstrak file dari files.tar , jalankan:
mkdir extracted_tar && tar xfC files.tar extracted_tar
Perintah tidak menampilkan pesan konfirmasi. Periksa konten direktori untuk mengonfirmasi bahwa komponen berhasil diekstraksi.
Ekstrak Dari Arsip tar.gz
Gunakan -z
opsi untuk mengekstrak file tar.gz:
tar xzf <archive name>.tar.gz
Perintah mengekstrak konten di direktori saat ini. Tambahkan -C
opsi untuk menentukan lokasi:
tar xzfC <archive name>.tar.gz <location>
Misalnya, buat direktori baru bernama extracted_gz dan ekstrak files.tar.gz isi:
mkdir extracted_gz && tar xzfC files.tar.gz extracted_gz
Arsip terkompresi tar.gz membutuhkan waktu paling sedikit untuk mengekstrak jika dibandingkan dengan format kompresi lainnya.
Ekstrak Dari Arsip tar.bz2
Untuk mengekstrak file dari arsip terkompresi tar.bz2 ke direktori saat ini, gunakan:
tar xjf <archive name>.tar.bz2
Ekstrak arsip tar.bz2 ke direktori tertentu dengan:
tar xjfC <archive name>tar.bz2 <location>
Misalnya, buat direktori dan ekstrak konten dari files.tar.bz2 :
mkdir extracted_bz2 && tar xjfC files.tar.bz2 extracted_bz2
Ekstrak Dari Arsip tar.xz
Tambahkan -J
opsi untuk mengekstrak dari arsip terkompresi tar.xz. Sintaks untuk mengekstrak di direktori saat ini adalah:
tar xJf <archive name>.tar.xz
Untuk mengekstrak konten ke direktori tertentu, gunakan -C
opsi dan tambahkan jalur:
tar xJfC <archive name>.tar.xz <location>
Sebagai contoh, buat direktori dan ekstrak files.tar.xz isi:
mkdir extracted_xz && tar xJfC files.tar.xz extracted_xz
Format kompresi xz adalah jalan tengah antara gz dan bz2 dalam hal waktu ekstraksi.
4. Kontrol Timpa
Kontrol penimpaan tar menangani situasi di mana nama file dalam arsip tumpang tindih dengan file di direktori kerja.
Tiga kemungkinan tindakan penimpaan adalah:
1. Timpa file di direktori kerja:
tar xf <archive> <Optional file(s) or location(s)> --overwrite
2. Jangan menimpa file di direktori kerja:
tar xf <archive> <Optional file(s) or location(s)> --keep-old-files
Jika file sudah ada, tar tidak akan melakukan ekstraksi.
3. Ekstrak file hanya jika lebih baru dari file yang ada:
tar xf <archive> <Optional file(s) or location(s)> --keep-newer-files
Jika file di direktori kerja lebih baru atau berumur sama, tar tidak mengekstrak file.
5. Daftar Isi Arsip
Gunakan perintah berikut untuk membuat daftar isi arsip:
tar tf <archive>
Opsi ini berfungsi untuk semua ekstensi file yang mengandung tar.
Misalnya, daftar file dan direktori di files.tar arsip:
tar tf files.tar.gz
Keluaran mencantumkan semua konten yang disimpan dalam arsip.
6. Temukan File di Arsip
Ada dua cara untuk menemukan konten tertentu menggunakan tar:
1. -t
opsi untuk membuat daftar file dalam arsip berguna untuk menemukan file tertentu. Tambahkan nama file (atau nama) setelah perintah:
tar tf <archive> <file(s)>
Misalnya, untuk mencari file50.txt di files.tar.gz arsipkan, jalankan:
tar tf files.tar.gz file/file50.txt
Opsi ini memerlukan mengetahui kemungkinan jalur ke file.
2. Gunakan tar
bersama dengan perintah grep untuk memfilter output:
tar tf <archive> | grep <file(s)>
Misalnya:
tar tf files.tar.gz | grep file50.txt
Opsi ini tidak perlu mengetahui kemungkinan jalur ke file.
7. Temukan Banyak File dalam satu Arsip
Gunakan --wildcards
pilihan untuk mencocokkan beberapa contoh file. Misalnya:
tar tf files.tar.gz --wildcards file/files5*.txt
Terapkan pencocokan karakter pengganti jika file memiliki nama yang mirip, atau untuk memfilter jenis file tertentu.
8. Kecualikan File saat Membuat Arsip
Untuk mengecualikan file tertentu dari arsip selama pembuatan, tambahkan opsi berikut:
tar cf <archive> --exclude='<pattern>' <files(s) or location(s)>
Misalnya, buat arsip dari direktori file dan kecualikan semua file .txt:
tar cf files.tar --exclude='*.txt' files
Buat daftar isi arsip:
tar tf files.tar
Output tidak menunjukkan file .txt, hanya file direktori dalam arsip.
9. Ekstrak File Tunggal dari Arsip
Hindari mengekstrak seluruh arsip jika Anda memerlukan satu atau beberapa file.
Untuk mendapatkan satu file dari arsip:
1. Buat daftar isinya dan periksa apakah file tersebut ada:
tar tf files.tar | grep file100.txt
Output mencetak jalur ke file yang diperlukan untuk langkah berikutnya.
2. Ekstrak file tertentu dengan:
tar xf files.tar files/file100.txt
Perintah membuat direktori file dengan hanya file yang ditunjukkan. Ikuti langkah yang sama untuk mengekstrak satu file dari arsip terkompresi dengan menambahkan tag yang sesuai. Misalnya, gunakan -z
opsi untuk menarik dari file tar.gz.
10. Opsi Verbose
Opsi verbose menampilkan informasi tambahan setelah menjalankan perintah tar. Tambahkan -v
atau --verbose
ke operasi apa pun untuk melihat hasilnya.
Misalnya, buat file tar.gz dan tambahkan -v
:
tar czfv files.tar.gz files
Outputnya menunjukkan setiap file saat ditambahkan ke arsip.
Beberapa perintah tar menampilkan informasi tambahan saat Anda menambahkan -v
tandai dua kali. Misalnya, coba tambahkan file ke arsip dengan -vv
:
tar czfvv files.tar.gz files
Output mencetak format daftar panjang dan terlihat mirip dengan menjalankan perintah ls -l.
11. Hapus dari Arsip
Untuk menghapus dari arsip, cari file yang ingin Anda hapus, misalnya:
tar tf files.tar | grep file100.txt
Kemudian, hapus file menggunakan --delete
tag:
tar --delete -f files.tar files/file100.txt
Opsi hapus tidak berfungsi pada . yang dikompresi format file.
12. Tambahkan File ke Arsip
Tambahkan file ke arsip yang ada menggunakan -r
menandai. Sintaksnya adalah:
tar rf <archive name>.tar <file(s) or location(s)>
Misalnya, tambahkan files.tar.gz yang dikompresi file ke files.tar arsip:
tar rf files.tar files.tar.gz
Arsip yang sudah dikompresi tidak dapat diperbarui, jadi sintaksnya hanya berfungsi untuk file tarball .
13. Gabungkan Arsip
Gunakan --concatenate
atau -A
pilihan untuk menggabungkan beberapa arsip. Sintaks dasarnya adalah:
tar Af <archive to extend> <archive to extend with>
Sebagai contoh, salin files.tar yang ada file menggunakan perintah cp:
cp files.tar files_copy.tar
Selanjutnya, gabungkan dua arsip:
tar Af files.tar files_copy.tar
Untuk mengonfirmasi bahwa penggabungan berhasil, periksa ukuran file.
14. Perbedaan Antara Arsip dan File
Untuk memeriksa perbedaan antara arsip dan file pada disk, gunakan -d
tag:
tar df <archive name>
Perintah mencari konten yang sama dan membandingkannya dengan apa yang ada di arsip. Opsi ini hanya memeriksa file yang ada dan mengabaikan file yang baru ditambahkan.
Langkah-langkah di bawah ini menunjukkan cara menggunakan -d
, --diff
, atau --compare
tag dengan tar
:
1. Buat arsip tar:
tar cf files.tar files
2. Bandingkan arsip dengan direktori yang ada:
tar df files.tar
Outputnya tidak menampilkan apa-apa, artinya tidak ada perbedaan antara file yang ada.
3. Tambahkan teks ke file yang ada di file direktori:
echo 'Hello' >> files/file0.txt
4. Bandingkan lagi arsip dengan direktori yang ada:
tar df files.tar
Kali ini, output menunjukkan perbedaan waktu modifikasi dan ukuran untuk file tertentu. Membandingkan memberikan wawasan tentang setiap perubahan yang dibuat pada sistem setelah membuat arsip.
15. Perbarui File di Arsip
Perbarui file yang ada di arsip dengan versi yang lebih baru dari disk dengan -u
pilihan:
tar uf <archive> <file(s) or location(s)>
Misalnya, perbarui files.tar arsipkan dengan file teks yang diubah:
tar uf files.tar files
Periksa konten tar untuk file yang diubah:
tar tfv files.tar | grep files0.txt
Perintah memperbarui arsip dengan file yang diubah tanpa menimpa apa pun.
16. Waktu yang Diubah
Tar menawarkan berbagai opsi untuk memodifikasi stempel waktu file. Tetapkan tanggal khusus saat membuat arsip dengan menambahkan --mtime
pilihan dan memberikan tanggal:
tar cf <archive> <file(s) or location(s)> --mtime=YYYY-MM-DD
Misalnya, buat arsip dan atur tanggalnya menjadi 1 Januari 1999:
tar cf files.tar files --mtime=1999-01-01
Atau, ekstrak file dengan tanggal dan waktu saat ini:
tar xf files.tar -m
Fitur yang berguna saat bekerja dengan waktu adalah memfilter file yang dimodifikasi setelah tanggal tertentu. Misalnya, untuk mengekstrak file yang dibuat setelah tanggal, gunakan --newer-mtime
pilihan dan tambahkan tanggal:
tar xf <archive> --newer-mtime=YYYY-MM-DD
17. Izin
Ada dua cara yang mungkin untuk mengontrol izin file dengan tar saat mengekstrak arsip:
1. Pertahankan izin asli:
tar xf <archive name> --preserve-permissions
Izin adalah sebagaimana dinyatakan dalam file sebelum pembuatan arsip.
2. Ubah hak akses ke nilai umask default:
tar xf <archive name> --no-same-permissions
File menggunakan izin default Linux.
18. Kepemilikan File
Tar memungkinkan konfigurasi kepemilikan file. Misalnya, untuk menyetel pemilik file saat membuat arsip, tambahkan --owner
dan --group
opsi dan memberikan nilai untuk masing-masing:
tar cf <archive> <file(s) or location(s)> --owner=<value> --group=<value>
Nilai pemilik mewakili UID (User ID) sedangkan nilai grup adalah GID (ID Grup). Untuk menemukan nilai ini bagi pengguna, jalankan:
id <username>
Misalnya, buat arsip dan setel kepemilikan ke root:
tar cf files.tar files --owner=0 --group=0
Tar memungkinkan pelestarian kepemilikan saat mengekstraksi dari arsip. Untuk melakukannya, tambahkan --same-owner
pilihan di akhir:
tar xf <archive> --same-owner
19. Tulis ke Program Eksternal
--to-command
option menginstruksikan tar untuk mengirim setiap file yang diekstrak ke output standar untuk program eksternal. Sintaks dasarnya adalah:
tar xf <archive> --to-command='<command>'
Misalnya, ekstrak files.tar isi dan pipa nama file sebagai direktori:
tar xf files.tar --to-command='mkdir $TAR_FILENAME'
Perintah membuat direktori yang dinamai sesuai dengan setiap file yang diekstraksi. Untuk informasi lebih lanjut dan variabel lingkungan Linux yang tersedia, kunjungi halaman manual.
20. Buat Cadangan Harian
Untuk mengotomatiskan pencadangan harian, buat skrip bash dan tambahkan baris berikut:
tar czf backup-$(date +%Y%m%d).tar.gz files
find backup* -mtime +1 -delete
Perintah tar membuat arsip terkompresi, sedangkan perintah find mencari file cadangan yang lebih lama dari satu hari. Ubah +1
parameter ke +7
untuk mingguan atau +31
untuk pencadangan bulanan.