Linux Bash Tar Kullanımı - Arşiv Çıkartma ve Oluşturma


Kategori:
kullanım

Linux tar komutu kullanımı ve tar komutu ile arşiv dosyalarını çıkartma arşive dosya ekleme yada değiştirme . Genellikle aksi belirtilmediği sürece Linux dağıtımlarında Tar programı kuruludur. Sisteminizi kurduğunuz zaman otomatik olarak arşiv yönetim programları kurulur. Konunun daha iyi anlaşılabilmesi adına anlatımı örnekler üzerinde gerçekleştirelim. Böylece hangi opsiyonun hangi anlama geldiğini ve bunun yanısıra örnek üzerinde nasıl kullanıldığını görebilirsiniz. Opsiyonlar: Genel kullanım:
tar  [opsiyonlar] arşivdosyasıadı.uzantısı  dosya(lar)
şeklinde olmaktadır.

Tar ile arşiv dosyası oluşturma

tar -cf  arşivdosyasıadı.uzantısı   arşive-eklenecek-dosya-adları
Tar komutu ile arşiv dosyası oluşturmada c ve f opsiyonları kullanılır. anlamlarına gelmektedir. Bunun yanında birde -v opsiyonu bulunmaktadır. Bu opsiyon kullanıldığı zaman Terminal ekranında arşive eklenen dosyaların isimleri gösterilir. Şimdi abc klasöründeki dosyaları .tar uzantılı olarak arşive ekleyelim. Ayrıca abc klasörü içerisinde dosya.txt, resim.jpg adında iki adet dosya ve tux adında bir tane de klasör olsun. Şimdi abc klasörü içerisinde olan tüm dosya ve klasörleri arşive ekleyelim.
tar -cvf arşiv.tar abc/* abc/dosya.txt abc/resim.jpg abc/tux/
evet arşiv.tar adında arşivimiz Terminal'in aktif dizini içerisinde oluşturuldu. Burada sadece bir dosya yada klasör ne isterseniz onları ekleyebilirsiniz. Örneğin abc klasörünün kendisini arşive ekleyelim,
tar -cvf  abc.tar  abc
Şimdi tar.gz yada tgz arşiv oluşturma örneğini yapalım.
tar cvzf arşivadı.tar.gz  eklenecek-dosya/klasör-adları
tar.bz2 arşiv dosyası oluşturma. bz2, tbz, bzip2 ve tb2 uzantıları için aynı yöntem kullanılır.
tar cvfj  arşiv-adı.tar.bz2 abc/* tar cvfj  arşiv-adı.tar.tb2 resimler-klasörü tar cvfj  arşiv-adı.tar.tbz abc

Tar dosyaları arşivden çıkartma.

Şimdi oluşturulmış olan arşiv dosyalarından dosyaları çıkartalım. Bunun için arşiv oluşturma opsiyonu yerine opsiyonunu kullanmalıyız.
tar -xvf  arşiv.tar.gz
Arşiv dosyasındaki dosya/klasörleri belirlenen dizine çıkartmak için büyük -C harfini kullanmalıyız. Örneğin bir üstteki arşiv.tar.gz arşivini deneme adlı klasör içerisine çıkartalım. Tabi deneme adında klasör olmalı ki içerisine dosyaları çıkartabilelim.
tar -xvf  arşiv.tar.gz  -C deneme
Arşiv dosyalarını çıkartırken, tar.gz, tar.bzip2, tar.tb2, tar.tbz, tar, gzip, tgz gibi uzantılar için aynı komut kullanılır. -xvf opsiyonları herhangi bir arşivden dosyaları çıkartmak için kullanılır. Şimdi arşiv dosyasındaki dosya ve klasörleri listeleyelim. Arşiv içeriğine bakalım.
tar -tvf  arşiv.tar.gz -rw-r--r-- linux/users    11724 2016-12-02 15:47 abc/dosya.txt -rw------- linux/users    15941 2016-12-02 04:08 abc/resim.jpg drwxr-xr-x linux/users        0 2016-12-05 22:53 abc/tux/
bu şekilde arşiv dosyası içeriğini görebiliriz. Diğer uzantılar içinde aynı komut kullanılır. Sadece dosya içeriğini listelemek için gerekli opsiyon olan -t opsiyonunu kullanmamız gerekiyor. Yani, dosya uzantısı tar.gz, tar.bz2, tar.tgz olsun hiçbir önemi yok, sadece -tvf opsiyonları ile arşiv dosyası içeriği listelenebilir. Şimdi arşiv dosyasının tamamını değil de, sadece istediğimiz bir dosyayı arşivden çıkartalım. Bunun için arşiv dosyası çıkartma komutunun sonuna hangi dosya/klasörü çıkartmak istiyorsak onun adını yazmamız  yeterli. Mesela yukarıdaki örnekte listelediğimiz dosya/klasörlerden yalnızca resim.jpg dosyasını arşivden çıkartalım. Bunun için arşiv türüne göre gerekli opsiyonu kullanmamız gerekiyor. Şimdi normal .tar arşivinden sadece resim.jpg adlı dosyayı çıkartalım.
tar  -xvf arşiv.tar   resim.jpg
tar.gz uzantılı arşiv dosyasından sadece bir dosyayı çıkartmak için -z opsiyonunu eklememiz yeterli.
tar  -zxvf arşiv.tar.gz   resim.jpg
tar.bzip2 uzantılı arşiv dosyasından sadece bir dosyayı çıkartmak için -j opsiyonunu eklememiz yeterli.
tar  -jxvf arşiv.tar.bzip2   resim.jpg
tabiki burada sadece resim.jpg dosyası örnek olarak kullanılmıştır. Siz arşiv dosyası içerisinden hangi dosyaları/klasörlerin çıkartılmasını istiyorsanız onların isimlerini en sona aralarında boşluk kalacak şekilde yazabilirsiniz. Şimdi oluşturduğumuz arşiv.tar arşivi içerisinden resim.jpg ve dosya.txt dosyalarını çıkartalım.
tar  -xvf arşiv.tar   "resim.jpg"  "dosya.txt"
Şu ana kadar olan belirli dosyaları çıkartma işlemlerinde genelde çift tırnak kullanmadık, eğer shell script derslerini takip ettiyseniz, çift tırnak kullanmanın önemini biliyor olmalısınız. O yüzden her zaman dosya/klasör isimlerini bir komuta sunduğunuz zaman çift tırnaklar içerisinde yazınız. Dosya/klasör isimlerinde boşluk olabilir ve o zaman komut birden fazla dosyayı çıkartmayı istediğinizi sanabilir. Bazen dosyalarda yada klasörlerde bazı özel karakterler, Türkçe karakter gibi problemler yaşayabiliriz. Başınza bir dosyayı arşivden çıkardığınızda dosyanın ve içeriğinin bozuk olarak yazdırılamayan ASCII karakterleri ile çıktığı gelmiş olabilir. Bu gibi durumlar için ––wildcards opsiyonunu kullanmalısınız. Şimdi dosya.txt dosyasını arşivden bu şekilde çıkartalım. Tabi tüm arşivide çıkartabilirsiniz.
tar  -jxvf arşiv.tar.bz2   "resim.jpg" ––wildcards
yada arşiv.tar.gz arşivinin tamamını özel karakter opsiyonu ile arşivden çıkartalım.
tar  -zxvf arşiv.tar.gz  ––wildcards

Tar Arşiv Dosyalarına Dosya/Klasör Ekleme

Önceden oluşturulmuş arşiv dosyalarına yeni dosya/klasör eklemek için -r opsiyonunu kullanmalısınız. Önceden oluşturulmuş olan arşiv.tar.gz arşivine linux.txt ekleyelim.
tar -rvf arşiv.tar.gz "linux.txt"
Yada penguen adında bir klasörü ekleyelim.
tar -rvf arşiv.tar.gz "penguen"
Bazen arşiv dosyaları bozuk olabiliyor. Bu gibi durumlarda arşivdeki dosyaların/klasörlerin bozuk olup olmadığını doğrulayabiliriz. Bunun için opsiyonunu kullanmamız gerekir. arşiv.tar arşivindeki dosyaları kontrol edelim.
tar tvfw  arşiv.tar
komutunu yazdıktan sonra arşivdeki dosya adları lidtelenecek ve bozuk bir dosya var ise gösterilecektir. Şimdi son bir örnek uygulayalım. İçerisinde resim.jpgdosya.txt dosyaları ve  penguen, tux klasörlerinin olduğu abc.tar.gz adındaki arşiv içerisinden sadece dosya.txt dosyasını ve tux klasörünü linux klasörü içerisine çıkartalım. Tabi bunun için önce linux klasörünü oluşturalım. Ayrıca bu işlemi ––wildcards opsiyonu ile gerçekleştirelim.
mkdir linux tar -zxvf abc.tar.gz "dosya.txt" "tux" -C linux ––wildcards
Sizlerde farklı örnekler oluşturabilirsiniz. Unutmayınız, pratik yapmazsanız hiç bir şey öğrenemezsiniz.



Diğer Paylaşımlar
Yorumlar