Bir klasörü 'gzip' komutu?


66

Mac komut istemi şeyler için yeni. Mac OS X'te bir klasörün gzipini nasıl oluşturabilirsiniz? Birkaç kişiyle bana bir klasörden bir gzip oluşturmak istiyorsanız ilk önce 'tar' yapıp sonra 'gzip' yapmalısınız. Bu doğru mu?


1
Bu bir programlama sorusu değil mi? Gönderiniz etiketlendi, objective-cancak komut satırı hakkında sorular soruyorsunuz.
rakuo15

Yanıtlar:


130

Tar arşivleme aracı ve gzip sıkıştırma aracıdır. Tam bir dizini sıkıştırmak için önce onu tek bir dosyaya arşivlemeniz gerekir. İşin katranı bu. ve sonra arşivlenmiş dosyayı sıkıştırırsınız. Her iki görevi de uygun seçenekle tek bir tar komutuyla yapabilirsiniz.

tar -czf folder_name.tar.gz klasör_adı /

Tar arşivleme yapmak istemiyorsanız (sadece tek bir dosyayı sıkıştırmak isteyebilirsiniz), doğrudan gzip komutunu kullanabilirsiniz.

gzip file.txt

File.txt.gz adında sıkıştırılmış bir dosya oluşturur.


30
Bu hangi seçeneklerin belirtmekte yarar var -czfsonra tar: içindir c, bir katran arşiv oluşturmak istediğinizi gösterir zgeçerlidir gzipara tar arşivi üzerinde ve fdaha sonraki nihai dosya adı içindir folder_name.tar.gz.
fideli

13
Uyarı: gzip file.txtorijinal dosyayı değiştirir.
Zoltán

6
@ Zoltán gzip -k file.txtGiriş dosyasını "saklamak" (silmeyin) için kullanın .
thohl

13

"Mac’te gzip" i ararken birileri hala bu soruyu buluyorsa, başkası için faydalı olabileceği konusunda bir rehber yazdım. İşte gidiyor:

Sıkıştırma

En temel komut dosyayı sıkıştırır filename.extve ardından filename.ext.gzaynı dizinde değiştirir.

gzip filename.ext

Orijinal dosyanızı kaybetmek istemiyorsanız, dosyanın çıktısını gzip -cbir dosyaya aktarmanız gerekir .

gzip -c filename.ext > anotherfile.gz

Ayrıca standart girdiden sıkıştırabiliriz, böylece diğer komutların çıktısını da sıkıştırabiliriz.

cat filename.ext | gzip > anotherfile.gz

OS X ayrıca compressve uncompresskomutlarıyla birlikte gelir . Sıkıştırma işleminden sonra büyürse dosyayı sıkıştıramadığından "akıllı" bir gzip oluştururlar. Aşağıdaki komut aynı dizinde filename.extile değiştirilir filename.ext.Z.

compress filename.ext

Açma

Bir dosyayı sıkıştırılmamış doğal durumuna geri yüklemek için gzip veya diğer paketleyicileri kullanabilirsiniz. Gzip'in dekompresyon modu -dbayrakla adlandırılır . Bu mod dosyayı aynı dizinde filename.ext.gzile değiştirir filename.ext. Aynı gunzipşeyi yapacak bir kısayol da var .

gzip -d filename.ext.gz
gunzip filename.ext.gz

Ayrıca, sıkıştırılmış dosyayı başka bir dosyaya kaydetmek için standart çıktıya yönlendirebiliriz.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Bir gzip içeriğini standart çıktıya okumanın bir başka hızlı yolu, zcattemelde gzip -cdçağrı catyapmakla aynıdır ancak birden fazla dosyayı arayabilir ve komutların metin dosyalarını aynı şekilde birleştirmesini sağlayabilirsiniz. Tek dezavantajı, dosyalarınızın çalışması için sonekle eklenmesi gerekmesidir .Z...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Ama korkma! zcathala kullanışlıdır, çünkü standart çıktıdan açılabilir. Böylece, dosyalarınızı terminal penceresinde açmaları için temelde zcat'e aktarabilirsiniz.

cat filename.ext.gz | zcat

Bir dosyanın içeriğini gerçekten hızlı bir şekilde kontrol etmeniz gerekiyorsa ve bu da zcat çıktısını bir dosyaya kaydedebiliyorsanız çok kolay.

cat filename.ext.gz | zcat > anotherfile

uncompressSarıcı gibi çalışır gzip -cdama sadece geri yüklemek istediğiniz dosya adını belirtmek gerekir böylece .Z uzantılı dosyalar, geçerli dizinde bunların yerine için ne görünüyor, ama .Z uzantılı dersek o kadar, tamam program onu ​​görmezden gelecektir.

compress filename.ext
uncompress filename.ext

Umarım rehberimi faydalı bulursunuz :)


4

MacOS X Unix'tir, bu yüzden çalışması gerekir (bu GNU / Linux'ta çalışır)

tar czvf compressed.tar.gz klasörü

3

Evet, önce dizini tar yaptınız. Tar-komutu her ikisini de yapabilir:

tar -czf archiv.tar.gz mydir/

arşivinizi çıkarın:

tar -xzf archiv.tar.gz

3

@Taskinoor tarafından verilen cevaba eklemek için: Eğer tek dosya versiyonunu kullanıyorsanız, aka

gzip file.txt

Orijinal dosyanın (file.txt) silineceğini ve sadece file.txt.gz 'ye sahip olduğunuzu unutmayın

Bunu yorum olarak koyardım ama bunu yapmak için yeterli karmaya sahip değilim: =)


1
gzip --keep file.txtOrijinali koruyacak ve yaratacak file.txt.gz. Bakın gzip --help.
Blaise

1

Evet bu doğru. gzipsadece bir dosyayı sıkıştırabilir. tarayrıca kullanılarak sıkıştırılmış olabilir tek bir dosya içine dizin içeriğini kodlar gzip, bzip2, lzmabaşka ya da bir şey.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.