Linux'ta dizinlerin özyinelemeli sıkıştırılması ve açılması

Linux işletim sistemi kullanan (çoğunlukla) bilgisayarlarda zaman zaman dizin içeriğini taşıma ya da yedekleme gibi sebeplerle tek bir sıkıştırılmış dosya haline getirme ihtiyacı olur. Bu durumlarda dizin içeriğini özyinelemeli (recursive) sıkıştırma komutunu kullanmak gerekir. Bunun için tar ve gzip'ten faydalanacağız. Tar, tape archive'ın kısaltılmışıdır ve sıkıştırma yapmadan arşivleme amaçlı kullanılan bir uygulamadır. Gzip ise sıkıştırma işlemi yapan bir uygulamadır.

tar -zcvf arsiv_dosyasi_adi.tar.gz dizin_adi

Bu komutta, tar uygulamasının çalıştırılması söz konusudur. Tar komutu çalışırken hangi şekilde çalışacağı zcvf parametreleri ile tanımlanmıştır. Bu paramatrelerin anlamlarına gelince;

z = gzip: Sıkıştırma işlemlerini yaparken gzip algoritmasını kullan.
c = create: Bir arşiv oluştur (dizin_adi dizininde yer alan dosyalardan)
v = verbosely: Arşiv dosyasına eklediğin tüm dosyaların adlarını göster.
f = file: (arsiv_dosyasi_adi.tar.gz) adlı dosyaya ekle.

Bu komut sonucunda dizin ve onun tüm alt dizinlerindeki dosyalar arsiv_dosyasi_adi.tar.gz adlı dosyaya eklenir. Eğer sıkıştırma yapmak istemez isek, z parametresini kullanmayız.

Oluşturduğumuz arşiv dosyasını açmak istediğimizde ise şu komut ile açabiliriz.

tar -zxvf arsiv_dosyasi_adi.tar.gz

Burada x extract (aç) anlamındadır. Bu komut, dosyaları bulunduğumuz dizinde, orijinal dizini oluşturarak açar.

Eğer dosyayı farklı bir dizine açmak istersek, o dizini önce oluşturduktan sonra şöyle bir açma komutuyla açabiliriz.

tar -xf arsiv_dosyasi_adi.tar.gz -C /hedef/dizin/yolu

Çok önemli olduğu için tekrar belirtiyorum, /hedef/dizin/yolu dizininin zaten mevcut olması gerekir. Eğer bu dizin yok ise ve iki satır komut çalıştırmak istemiyorsak, iki komutu tek satırda şu şekilde çalıştırabiliriz.

mkdir -p /hedef/dizin/yolu && tar xf arsiv_dosyasi_adi.tar.gz -C /hedef/dizin/yolu

&& işareti, iki komutun arka arkaya çalıştırılması talimatını anlatır. mkdir komutundaki -p parametresi ise, dizini belirtilen girdi tam yol olarak yorumlanarak çalışma anlamına gelir. Eğer bunu yazmazsak, dizin bulunduğumuz dizinin alt dizini olarak açılır.

Bu noktada bilmemiz gereken bir başka önemli parametre, tar uygulamasında yer alan "strip-components" parametresidir. Bu parametreden yararlanarak, öyinelemeli sıkıştırdığımız dizini, o dizin adı yerine kendi belirttiğimiz dizin adında açabiliriz.

mkdir -p /hedef/dizin/yolu && tar xf arsiv_dosyasi_adi.tar.gz -C /hedef/dizin/yolu --strip-components=1
23.08.2017 Geni
1
Sıkıştırılmış dosya oluşturulurken, eğer oluşturulacak dosya çok büyükse, dosya sisteminin kabul ettiği en büyük dosya boyunun üzerine çıkarsa, dosyalarda problem olacaktır.
24.08.2017 Geni
1
daha iyi hizmet verebilmek için çerez (cookie) kullanıyoruz. detaylı bilgi için tıklayın