Dosyaları Linux Terminalinden Sıkıştırma veya Açma

ZIP dosyaları, Windows, macOS ve hatta Linux sistemlerinde yaygın olarak kullanılan evrensel bir arşivdir. Bazı yaygın Linux terminal komutlarıyla bir zip arşivi oluşturabilir veya birinden dosyaları açabilirsiniz.

ZIP Sıkıştırılmış Arşiv Dosyası Biçimi

ZIP formatının Windows dünyasındaki hakimiyeti sayesinde, ZIP dosyaları muhtemelen dünyadaki en yaygın sıkıştırılmış arşiv biçimidir.

Linux'ta .tar.gz ve tar.bz2 dosyaları yaygın olsa da, Windows kullanıcıları muhtemelen size ZIP biçiminde bir arşiv gönderecektir. Ve bazı dosyaları arşivlemek ve bir Windows kullanıcısına göndermek istiyorsanız, ZIP formatı herkes için en kolay ve en uyumlu çözüm olacaktır.

İLGİLİ: Linux'ta .tar.gz veya .tar.bz2 Dosyasından Dosyaları Çıkarma

zip, unzip ve Diğer Yardımcı Programlar

Zaten bu tür MacOS olarak Linux ve işletme Unix benzeri sistemleri, onlardan denilen ZIP dosyalarını ve özü dosyaları oluşturmak için izin araçlara sahip olduğunu biliyor olabilir zipve unzip. Ama böyle gibi ilgili araçlardan bir bütün aile var zipcloak, zipdetails, zipsplitve zipinfo.

Bazı Linux dağıtımlarını standart kuruluma bu yardımcı programları dahil edip etmediklerini kontrol ettik. Tüm yardımcı programlar Ubuntu 19.04, 18.10 ve 18.04'te mevcuttu. Manjaro 18.04'te de hazır bulundu. Fedora 29, zipve unzipdiğer yardımcı programların hiçbirini içermiyordu ve bu aynı zamanda CentOS için de geçerliydi.

Eksik öğeleri Fedora 29'a yüklemek için aşağıdaki komutu kullanın:

sudo dnf kur perl-IO-Sıkıştır

Eksik öğeleri CentOS 7'ye yüklemek için aşağıdaki komutu kullanın:

sudo yum install perl-IO-Compress

Yukarıda bahsedilmeyen bir Linux dağıtımında zip yardımcı programlarından herhangi biri eksikse, gerekli paketi yüklemek için o Linux dağıtımının paket yönetim aracını kullanın.

Zip Komutu ile ZIP Dosyası Nasıl Oluşturulur

Bir ZIP dosyası oluşturmak için zip, arşiv dosyasının adını ve bu dosyaya hangi dosyaların dahil edileceğini söylemeniz gerekir. Arşiv adına “.zip” uzantısını eklemenize gerek yoktur, ancak yaparsanız herhangi bir zararı yoktur.

source_code.zipGeçerli dizindeki tüm C kaynak kodu dosyalarını ve başlık dosyalarını içeren adlı bir dosya oluşturmak için şu komutu kullanırsınız:

zip kaynak_kodu * .c * .h

Her dosya eklendikçe listelenir. Dosyanın adı ve o dosyada elde edilen sıkıştırma miktarı gösterilir.

Yeni ZIP arşivine bakarsanız, ".zip" dosya uzantısının tarafından otomatik olarak eklendiğini görebilirsiniz zip.

ls -l kaynak_kodu.zip

zipZIP dosyası oluşturulurken çıktısını görmek istemiyorsanız , -q(sessiz) seçeneğini kullanın.

zip -q kaynak_kodu * .c * .h

Dizinleri ZIP Dosyalarına Dahil Etme

ZIP dosyasına alt dizinleri dahil etmek için, -r(özyinelemeli) seçeneğini kullanın ve alt dizinin adını komut satırına ekleyin. Önceden olduğu gibi bir ZIP dosyası oluşturmak ve ayrıca arşiv alt dizinini dahil etmek için bu komutu kullanın.

zip -r -q kaynak_kod arşivi / * .c * .h

Oluşturmakta olduğunuz ZIP dosyasından dosyaları çıkaracak kişiye karşı düşünceli olmak için, içindeki dosyalar bir dizinde bulunan ZIP dosyaları oluşturmak genellikle kibarlıktır. ZIP dosyasını alan kişi dosyayı çıkardığında, tüm dosyalar bilgisayarındaki bir dizine düzgün bir şekilde yerleştirilir.

Aşağıdaki komutta workdizini ve tüm alt dizinleri arşivleyeceğiz . Bu komutun klasörün üst dizininden verildiğine dikkat edin work.

zip -r -q kaynak_kod çalışması /

Sıkıştırma Düzeyini Ayarlama

ZIP arşivine eklendiklerinde dosyalara ne kadar sıkıştırma uygulanacağını ayarlayabilirsiniz. Aralık 0 ile 9 arasındadır ve 0 hiç sıkıştırma değildir. Sıkıştırma ne kadar yüksek olursa, ZIP dosyasını oluşturmak o kadar uzun sürer. Mütevazı boyuttaki ZIP dosyaları için, zaman farkı önemli bir ceza değildir. Ancak, orta büyüklükteki ZIP dosyaları için varsayılan sıkıştırma (seviye 6) muhtemelen yeterince iyidir.

Almak için zip“-”, sıkıştırma belirli seviyesini kullandığınız bir ile, komut satırında bir seçenek olarak numarayı geçmesine böyle:

zip -0 -r -q kaynak_kod çalışması /

Varsayılan sıkıştırma düzeyi 6'dır. -6Seçeneği sağlamanıza gerek yoktur , ancak yaparsanız herhangi bir zararı yoktur.

zip -r -q kaynak_kod çalışması /

Maksimum sıkıştırma seviyesi 9. seviyedir.

zip -9 -r -q kaynak_kod çalışması /

Burada arşivlenen dosya ve dizinlerle, sıkıştırma yok (düzey 0) ile varsayılan sıkıştırma (düzey 6) arasındaki fark 400K'dır. Varsayılan sıkıştırma ile en yüksek sıkıştırma düzeyi (düzey 9) arasındaki fark yalnızca 4K'dır.

Bu çok fazla görünmeyebilir, ancak yüzlerce hatta binlerce dosya içeren arşivler için, dosya başına az miktardaki fazladan sıkıştırma, önemli bir yerden tasarruf sağlar.

ZIP Dosyalarına Parola Ekleme

ZIP dosyalarına şifre eklemek kolaydır. -e(Şifrele) seçeneğini kullanın, parolanızı girmeniz ve doğrulama için yeniden girmeniz istenir.

zip -e -r -q kaynak_ kodu çalışma /

Zip Dosyasını Unzip Komutu ile Açma

Dosyaları bir ZIP dosyasından çıkarmak için unzip komutunu kullanın ve ZIP dosyasının adını girin. Not Bunu yapmak “.zip” uzantısı sağlamak için ihtiyaç.

source_code.zip dosyasını açın

Dosyalar çıkartıldıkça terminal penceresinde listelenirler.

ZIP dosyaları, dosya sahipliğinin ayrıntılarını taşımaz. Çıkarılan tüm dosyaların sahibi, onları çıkaran kullanıcıya ayarlanır.

Tıpkı zip, unzip bir sahip -qdosyaların ayıklanma olarak dosya listesini görmek gerekmez böylece, (sessiz) seçeneği.

unzip -q kaynak_kodu.zip

Dosyaları Hedef Dizine Çıkarma

Dosyaları belirli bir dizine -dçıkarmak için (dizin) seçeneğini kullanın ve arşivin çıkarılmasını istediğiniz dizine giden yolu belirtin.

unzip -q kaynak_kodu.zip -d ./development

Parola Korumalı ZIP Dosyalarını Çıkarın

Şifre ile bir ZIP dosyası oluşturulmuşsa, unzipsizden şifreyi soracaktır. Doğru şifreyi  unzipgirmezseniz, dosyalar çıkartılmaz.

unzip -q kaynak_kodu.zip

Parolanızın başkaları tarafından görülmesini veya komut geçmişinizde saklanmasını önemsemiyorsanız, parolayı komut satırında -P(parola) seçeneğiyle sağlayabilirsiniz . (Büyük "P" kullanmalısınız)

unzip -P elli.treacle.cutlass -q kaynak_kodu.zip

Dosyaları Hariç Tutma

Belirli bir dosyayı veya dosya grubunu çıkarmak istemiyorsanız, -x(hariç tut) seçeneğini kullanın. Bu örnekte, ".h" uzantısıyla bitenlerin dışındaki tüm dosyaları çıkarmak istiyoruz.

unzip -q kaynak_kodu.zip -x * .h

Dosyaların Üzerine Yazma

Bir arşiv çıkardığınızı, ancak çıkarılan dosyalardan birkaçını yanlışlıkla sildinizi varsayalım.

Bunun için hızlı bir düzeltme, dosyaları bir kez daha çıkarmak olacaktır. Ancak ZIP dosyasını daha önce olduğu gibi aynı dizine çıkarmaya çalışırsanız unzip, dosyaların üzerine yazma konusunda bir karar vermenizi isteyecektir. Aşağıdaki yanıtlardan birini bekleyecektir.

Bunun dışında r(adlandırma) yanıtı, bu tepkiler harf duyarlıdır.

  • y: Evet, bu dosyanın üzerine yaz
  • n: Hayır, bu dosyanın üzerine yazma
  • A: Hepsi, tüm dosyaların üzerine yaz
  • N: Yok, hiçbir dosyanın üzerine yazma
  • r: Yeniden adlandırın, bu dosyayı çıkartın ama ona yeni bir isim verin. Yeni bir isim girmeniz istenecektir.

unzipMevcut dosyaların üzerine yazmaya zorlamak için -o(üzerine yaz) seçeneğini kullanın.

unzip -o -q kaynak_kodu.zip

Eksik dosyaları değiştirmenin en etkili yolu, unzipyalnızca arşivdeki hedef dizinde olmayan dosyaları ayıklamaktır . Bunu yapmak için -n(asla üzerine yazma) seçeneğini kullanın.

unzip -n kaynak_kodu.zip

ZIP Dosyasına Bakmak

Çıkartmadan önce ZIP dosyasındaki dosyaların bir listesini görmek genellikle yararlı ve öğreticidir. Bunu -l(arşiv listesi) seçeneği ile yapabilirsiniz. Yoluyla taşınıyor lessçıkış yönetilebilir hale getirmek için.

unzip -l kaynak_kodu.zip | az

Çıktı, ZIP dosyası içindeki dizinleri ve dosyaları, uzunluklarını ve arşive eklendikleri saat ve tarihi gösterir. Çıkmak için “q” ya basın less.

İleride göreceğimiz gibi, farklı türde bilgiler veren bir ZIP dosyasının içine göz atmanın başka yolları da vardır.

Zipcloak Komutu ile Parola Ekleyin

Bir ZIP dosyası oluşturduysanız, ancak bir şifre eklemeyi unuttuysanız, ne yapabilirsiniz? zipcloakKomutu kullanarak ZIP dosyasına hızlı bir şekilde şifre ekleyebilirsiniz . ZIP dosyasının adını komut satırına aktarın. Bir şifre girmeniz istenecektir. Parolayı ikinci kez girerek doğrulamanız gerekir.

zipcloak source_code.zip

Zipdetails Komutu ile Dosya Ayrıntılarını Görüntüle

zipdetailsKomut size gösterecektir çok ZIP dosyası ile ilgili bilgi. Bu komutun verebileceği çıktı miktarını işlemenin tek mantıklı yolu, onu yönlendirmektir less.

zipdetails source_code.zip | az

ZIP dosyası parola korumalı olsa bile bilgilerin dosya adlarını içereceğini unutmayın. Bu tür bilgiler ZIP dosyasında meta veri olarak saklanır ve şifrelenmiş verilerin bir parçası değildir.

Zipgrep Komutu ile Dosyanın İçinde Ara

zipgrepKomut arama yapmanızı sağlar dosyaları içinde bir ZIP dosyası. Aşağıdaki örnekte, ZIP dosyasındaki hangi dosyaların içinde “keyval.h” metninin bulunduğunu bilmek istiyoruz.

zipgrep keyval.h source_code.zip

Biz dosyaları görebilirsiniz slang.cve getval.c.Biz de ZIP dosyası içinde farklı dizinlerde bu dosyaların her iki kopyası olduğunu görebilirsiniz dize “keyval.h” içerirler.

Zipinfo Komutu ile Bilgileri Görüntüleyin

zipinfoKomut size bir ZIP dosyası içine bakmak için bir başka yol verir. Daha önce olduğu gibi, çıktıyı yönlendiriyoruz less.

zipinfo source_code.zip | az

Soldan sağa çıktı şunu gösterir:

  • Dosya izinleri
  • ZIP dosyasını oluşturmak için kullanılan aracın sürümü
  • Orijinal dosya boyutu
  • Bir dosya tanımlayıcı (aşağıda açıklanmıştır)
  • Sıkıştırma yöntemi (bu durumda deflasyon)
  • Veri ve zaman damgası
  • Dosyanın ve herhangi bir dizinin adı

Dosya tanımlayıcı iki karakterden oluşur. İlk karakter, bir metin veya ikili dosyayı belirtmek için "t" veya "b" olacaktır. Büyük harf ise dosya şifrelenir. İkinci karakter dört karakterden biri olabilir. Bu karakter, bu dosya için hangi tür meta verilerin dahil edildiğini temsil eder: yok, genişletilmiş yerel başlık, "ekstra alan" veya her ikisi.

  • -: Hiçbiri yoksa, karakter bir kısa çizgi olacaktır
  • l: genişletilmiş bir yerel başlık varsa ancak fazladan alan yoksa
  • x: genişletilmiş yerel başlık yoksa ancak fazladan bir alan varsa
  • X: genişletilmiş bir yerel başlık varsa ve fazladan bir alan varsa

Dosyayı zipsplit Komutuyla Böl

ZIP dosyasını başka birine göndermeniz gerekiyorsa ancak dosyanın aktarımında boyut kısıtlamaları veya problemleri varsa zipsplit, orijinal ZIP dosyasını daha küçük ZIP dosyalarına bölmek için komutu kullanabilirsiniz .

-n(Boyut) seçeneği Yeni ZIP dosyaların her biri için maksimum boyutunu ayarlamak için izin verir. Bu örnekte, source_code.zipdosyayı bölüyoruz . Yeni ZIP dosyalarının hiçbirinin 100 KB'den (102400 bayt) büyük olmasını istemiyoruz.

zipsplit -n 102400 kaynak_kodu.zip

Seçtiğiniz boyut, ZIP dosyasındaki herhangi bir dosyanın boyutundan daha küçük olamaz.

Bu komutları kullanarak kendi ZIP dosyalarınızı oluşturabilir, aldığınız ZIP dosyalarını açabilir ve Linux terminalinden hiç çıkmadan bunlarda çeşitli diğer işlemleri gerçekleştirebilirsiniz.