it-swarm-tr.com

Unix komut satırına nasıl sıkıştırır / açarım?

Komut satırından Zip arşivlerini nasıl oluşturabilir ve çıkarabilirim?

570
joachim

Genellikle sıkıştırılmamış bir arşiv oluşturmak için tar kullanır ve gzip veya bzip2 arşivi sıkıştırmak için. Karşılık gelen gunzip ve bunzip2 komutları söz konusu arşivi açmak için kullanılabilir veya sıkıştırmayı gerçekleştirmek için tar komutundaki bayrakları kullanabilirsiniz.

Özellikle Zip dosyası biçimi 'a başvuruyorsanız, Zip ve unzip komutlarını kullanabilirsiniz.

Sıkıştırmak için:

Zip squash.Zip file1 file2 file3

veya bir dizini sıkıştırmak için

Zip -r squash.Zip dir1

Sıkıştırmak için:

unzip squash.Zip

bu, geçerli çalışma dizininizdeki sıkıştırmasını açar.

698
Justin Ethier

Gerçekten UNIX türevleri altında sıkıştırmak ve açmak için çok sayıda farklı yol vardır, bu yüzden genel anlamda "Zip" demek istediğinizi varsayacağım özel dosya biçimi yerine.

GNU tar programı ile dosyaları Sıkıştırılmış biçimde (sıkıştırılmış biçimde):

tar -zcvf myfile.tgz .

geçerli dizini yapar. Değiştir . başka bir dosya istiyorsanız.

Bu dosyayı açmak için şunu kullanın:

tar -zxvf myfile.tgz

Tabii ki sıkıştırmayı yapabilen ve dosyaları tek bir dosyada birleştirebilen bir tar var.

Değilse, tar cvf ve ardından sıkıştırma için gzip (varsa, yine) ve gunzip ardından tar xvf.


Zip formatındaki dosyaların özel kullanımı için 7Zip ve bunu kullanarak - Zip çok çeşitli Zip formatı da dahil olmak üzere çeşitli dosya formatlarını tanır.

68
user14408

Yüklü Zip ve unzip paketleriniz yoksa ve Java'nız varsa, açmak için jar kullanabilirsiniz:

jar -xf file.Zip
33
mlocke

Peki, çeşitli işletim sistemleri için dosya dağıtma söz konusu olduğunda, 7-Zip öneririm.

Genellikle p7Zip, 7z ve 7za komutu ile kendi 7z arşivinizi oluşturabilirsiniz.

7za ayrıca standart ( pkzip ) Zip arşivlerini de açabilir (ve -tzip değiştirmek).

Sıkıştırma:

7za a archive.7z file1 file2 directory/

Açma:

7za x archive.7z

Ayrıca -sfx değiştirmek:

7za a -sfx archive.exe files1 file2 dir

Windows kullanıcılarının 7z arşiv açamaması durumunda bu yöntemi öneririm (bunun için bir araç önermek istiyorsanız: PeaZip ).

Tarball'larınızla aynı sıkıştırma algoritmasını kullanmak istiyorsanız, -Jtar ile değiştirin:

tar cJf archive.tar.xz file1 file2 dir

xz sıkıştırma için LZMA2 kullanan ancak gz, bz2, vs çalışır. Filtre olarak bile çalışır.

7z, UNIX'te tam dosya sistemi bilgilerine sahip arşivler oluşturmaz, bu nedenle 7z kullanmadan önce tar kullanmanız gerekir (ancak 7z tar dosyası hakkında diğer bilgileri sakladığından, tavsiye ederim bunun için tasarlandığı gibi xz kullanarak):

tar cf - file1 file2 dir | 7za z -si archive.tar.7z
30
polemon
unzip <filename>

ve

Zip -r archive.Zip <filename> [filename]

Bu komutların paket yöneticiniz aracılığıyla yüklendiğinden emin olmanız gerekir. Komut satırında başka bir şey kullanmaktan daha zor değil. Katran ile arşiv oluşturmaktan kesinlikle daha basit.

23
Starfish

BSD Tar da bunu yapabilir

bsdtar -a -c -f sunday.Zip sunday.jpg

Veya:

bsdtar -x -f sunday.Zip
4
Steven Penny

En standart cevap pax olup, cpio ve tar .

cpio ve POSIX tar'den farklı olarak GNU tar gibi), pax dosyaları hem arşivleyebilir hem de Bu davranış, her bir dosyayı arşive koymadan önce sıkıştıran Zip öğesinden farklıdır.

3
mouviciel

Bu sadece ekstraksiyonu kapsar.

Bunun için dtrx kullanmaya başladım.

Bütün mesele karmaşıklığı ortadan kaldırmaktır. Yani sadece herhangi bir arşive geçersiniz ve onunla ne yapılması gerektiğini anlarsınız. Zip, tar, gz ... Kullanım her zaman aynıdır - dtrx archive.Zip. Birkaç soru sorar ve işiniz bitti.

dtrx çoğu depoda bulunur, böylece apt | yum yükleyebilirsiniz.

2
JackLeo

Sık sık değiştirilmiş dosyaları çalışma dizinimde sıkıştırmaya çalışıyorum - tüm değiştirilen dosyaları başka bir sanal alan iş dizinine kopyalamak veya bazı değişiklikleri geri almak istediğim için kısa bir süre korumak için.

Bu durumda, değiştirilen dosyaların listesini geçici bir dosyaya kopyalarım ve Zip seçeneğini [email protected].

Diyelim ki Foo.h, Bar.cc ve TestBar.cc dosyalarını değiştirdim.

Diyelim ki içeriği şu olan değiştirilmiş-files.txt adlı bir dosya oluşturuyorum:

Foo.h
Bar.cc
TestBar.cc

Bu dosyaları sıkıştırmak için aşağıdaki komutu yürütüyorum:

cat modified-files.txt | Zip modified-files.Zip [email protected]
1
R Sahu