Ana içeriğe geç

tar Komutu

Linux dünyasında arşivler ve sıkıştırılmış dosyalar pek çok farklı amaçla kullanılmaktadır. Bu yazıda, tar komutu örneklerini inceleyeceğiz. tar kullanarak; "gzip", "bzip2" ve "xz" ile "tarball'lar" oluşturacağız.

tar Komutu Örnekleri

Kılavuz sayfasında belirtildiği gibi; "GNU tar", birçok dosyayı birlikte tek bir teyp veya disk arşivine kaydeder ve arşivden tek tek dosyaları geri yükleyebilir. tar, "Tape Archive (Teyp Arşivi)" anlamına gelir. Bir tar dosyasını sıkıştırarak tar.gz uzantılı dosyalar elde edebilirsiniz. Bu tür sıkıştırılmış arşiv dosyaları "tarball" olarak bilinir.

tar Komutu ile Arşiv Oluşturmak

Önce birkaç dosya oluşturalım. I/O yönlendirmesi ile bir text dosyası ve dd komutu ile bir data dosyası oluşturalım:

örnek dosya oluşturma
[root@gnuadmin ~]# cat /var/log/lastlog > last.log
[root@gnuadmin ~]# journalctl > system_logs
[root@gnuadmin ~]# dd if=/dev/urandom of=data_file bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 3,47781 s, 30,2 MB/s
[root@gnuadmin ~]# ls -lh
total 101M
-rw-r--r--. 1 root root 100M Jan 13 22:55 data_file
-rw-r--r--. 1 root root 286K Jan 13 22:52 last.log
-rw-r--r--. 1 root root  70K Jan 13 22:51 system_logs

Şimdi de bu dosyaları bir "tar arşivive" ekleyelim:

tar arşivi oluşturma
[root@gnuadmin ~]# tar -cf my_archive.tar last.log data_file system_logs 
[root@gnuadmin ~]# tar -cvf my_verbose.tar last.log data_file system_logs 
last.log
data_file
system_logs

tar komutunun "-c" opsiyonu, "create" anlamına gelir. "-f" ise, oluşturacağınız arşivin adını belirtmenizi sağlar. Komutun devamında yer alan argümanlar ise, arşive eklenecek dosyaları belirtmektedir. Eğer arşivin oluşturulması sırasında, işlenen dosyaları tek tek görmek isterseniz "-v" ile "verbose" edebilirsiniz.

tar Arşivindeki Dosyaları Listelemek

tar -tvf komutu ile, tar arşivindeki dosyaları listeleyebilirsiniz:

tar arşivinin içeriğini listeleme
[root@gnuadmin ~]# tar -tvf my_archive.tar 
-rw-r--r-- root/root    292000 2022-01-13 22:52 last.log
-rw-r--r-- root/root 104857600 2022-01-13 22:55 data_file
-rw-r--r-- root/root     70933 2022-01-13 22:51 system_logs

tar Arşivinden Dosya Çıkarma

tar -xf komutu ile, tar arşivindeki dosyaları çıkarabilirsiniz:

tar arşivinin açılması
[root@gnuadmin ~]# ls -l
total 205520
-rw-r--r--. 1 root root 105226240 Jan 13 22:58 my_archive.tar
-rw-r--r--. 1 root root 105226240 Jan 13 22:58 my_verbose.tar
[root@gnuadmin ~]# tar -xf my_archive.tar 
[root@gnuadmin ~]# ls -l
total 308280
-rw-r--r--. 1 root root 104857600 Jan 13 22:55 data_file
-rw-r--r--. 1 root root    292000 Jan 13 22:52 last.log
-rw-r--r--. 1 root root 105226240 Jan 13 22:58 my_archive.tar
-rw-r--r--. 1 root root 105226240 Jan 13 22:58 my_verbose.tar
-rw-r--r--. 1 root root     70933 Jan 13 22:51 system_logs

tarball Oluşturmak

tar arşivlerinizi sıkıştırarak "tarball" oluşturabilirsiniz.

gzip Algoritması ile

Sıkıştırmada "gzip" algoritmasını kullanmak isterseniz, "-z" opsiyonunu kullanabilirsiniz:

gzip arşivi
[root@gnuadmin ~]# tar -czf gzip.tar.gz data_file last.log system_logs 

bzip2 Algoritması ile

Sıkıştırmada "bzip2" algoritmasını kullanmak isterseniz, "-j" opsiyonunu kullanabilirsiniz:

bzip2 arşivi
[root@gnuadmin ~]# tar -cjf bzip2.tar.bz2 data_file last.log system_logs 

Not: Eğer "tar (child): bzip2: Cannot exec: No such file or directory" hatası alırsanız, sisteminize "bzip2" paketini kurmanız gerekmektedir.

xz Algoritması ile

Sıkıştırmada "xz" algoritmasını kullanmak isterseniz, "-J" opsiyonunu kullanabilirsiniz:

xz arşivi
[root@gnuadmin ~]# tar -cJf xz.tar.xz data_file last.log system_logs