18 Aralık 2019 Çarşamba

zip komutu

Giriş
gzip ve zip farklı şeyler. zip her dosyayı tek başına sıkıştırır ve arşive ekler. Arşivden tek bir dosyayı çıkartmak daha kolay. Açıklaması şöyle
In ZIP files, the individual files are compressed and then added to the archive. When you want to pull a single file from a ZIP, it is simply extracted, then decompressed. With GZIP, the whole file needs to be decompressed before you can extract the file you want from the archive. When pulling a 1MB file from a 10GB archive, it is quite clear that it would take a lot longer in GZIP, than in ZIP.
Buna karşılık gzip dosyalarının nihai boyutu daha küçük oluyor. Açıklaması şöyle
GZIP’s disadvantage in how it operates, is also responsible for GZIP’s advantage. Since the compression algorithm in GZIP compresses one large file instead of multiple smaller ones, it can take advantage of the redundancy in the files to reduce the file size even further. If you archive and compress 10 identical files with ZIP and GZIP, the ZIP file would be over 10 times bigger than the resulting GZIP file.
Kullanım
Kısaca şöyle yaparız
zip Compressed.zip File1.txt File2.txt File3.txt MyFolder
-A seçeneği - adjust suffix
Eğer zip dosyasına uzantı vermezsek .zip uzantısı otomatik verilir. Bunu engellemek için kullanılır.
Örnek
Şöyle yaparız.
zip -Ar archive directory/
-d seçeneği
delete anlamına gelir. Şöyle yaparız. log4j ise başlayan tüm jar dosyalarından belirtilen dosyayı siler.
zip -q -d log4j-*.jar org/apache/log4j/net/JMSAppender.class
-j seçeneği
Açıklaması şöyle.
Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current directory).
Elimizde şöyle bir yapı olsun.
.
├── d0
├── f0
├── f1
│   └── d1
└── f2
    └── f3
        ├── d2
        ├── d3
        └── d4
Dizin yapısını almadan sadece dosyaları zipkemek için şöyle yaparız.
zip -j myfiles d0 f1/d1 f2/f3/d4 
Çıktı olarak şunu alırız.
.
├── d0
├── d1
└── d4
-r seçeneği - Dizin için kullanılır
Örnek
Şöyle yaparız
zip -r archive.zip directory/
Örnek
Şöyle yaparız.
zip -r myfiles.zip *
-u seçeneği - update zip file
update anlamına gelir. Açıklaması şöyle
update (-u)
    Update existing entries if newer on the file system and add new files. 
    If the archive does not exist issue warning then create a new archive.
Örnek
zip dosyasına yeni bir şey eklemek için şöyle yaparız.
zip -u existing.zip file.txt
Örnek
Şöyle yaparız.
for z in *.zip; do
    zip -u "$z" file.txt
done

Hiç yorum yok:

Yorum Gönder