Zip arşivlerini komut satırından nasıl oluşturabilir ve çıkarabilirim?
Zip arşivlerini komut satırından nasıl oluşturabilir ve çıkarabilirim?
Yanıtlar:
Tipik olarak bir kullanan tar
sıkıştırılmamış arşiv ve ya oluşturmak için gzip
ya da bzip2
bu arşiv sıkıştırmak. Karşılık gelen gunzip
ve bunzip2
komutları bahsedilen arşivi açmak için kullanılabilir, ya da sadece tar
açma işlemini gerçekleştirmek için komuttaki bayrakları kullanabilirsiniz .
Özellikle Zip dosyası biçimini kastediyorsanız , basitçe 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 dosyayı açar.
zip -r9 archive.zip files...
sözdizimini kullanırım (-r = özyinelemeli -9 = maksimum sıkıştırma).
zip
.ZIP arşivlerinin birçok farklı tadı olabilir, ayrıca birçok farklı kompresör kullanabilirsiniz. Öte yandan, aynı şekilde adlandırılan diğer birçok sıkıştırma aracı vardır: 7-Zip, gzip, bzip2, rzip, vb. Değiştirilemez.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
ayrı bir yeni dizine ( myfolder
) çıkarmak için kullanın; bu, zip dosyası üst düzeyde birçok dosya ve dizin içeriyorsa can sıkıcı olabilir. Bu, çoğu UI çözme aracının nasıl çalıştığını taklit eder.
UNIX türevleri altında sıkıştırıp açmanın gerçekten çok sayıda farklı yolu vardır, bu yüzden belirli bir dosya biçiminden ziyade genel anlamda "zip" demek istediğinizi varsayacağım .
Dosyaları GNU tar
programı ile (sıkıştırılmış biçimde) sıkıştırabilirsiniz :
tar -zcvf myfile.tgz .
Bu geçerli dizini yapacak. .
Başka bir şey istiyorsanız, diğer dosya adları ile değiştirin .
Bu dosyayı açmak için aşağıdakileri kullanın:
tar -zxvf myfile.tgz
Elbette bu tar
, dosyaları bir arada bir arada kullanmanın yanı sıra sıkıştırma işlemini de yapabilme yeteneğine sahip olduğunuzu varsayar .
Eğer değilse, sadece sıkıştırma için tar cvf
ardından gzip
(eğer varsa) ve gunzip
ardından kullanabilirsiniz tar xvf
.
ZIP formatındaki dosyaların özel kullanımı için, indirmenizi 7zip
ve kullanmanızı öneririm - ZIP formatı da dahil olmak üzere çok çeşitli dosya formatlarını tanır .
tar jcvf file.tar.bz2...
bzip2 formatında veya tar Jcvf file.tar.xz ...
xz sıkıştırmasında sıkıştırmak için kullanın.
Eğer zip ve zip paketlerini kurmamışsanız ve java'nız varsa, açmak için kullanabilirsiniz jar
:
jar -xf file.zip
Eh, çeşitli işletim sistemleri için dosya dağıtımı söz konusu olduğunda, 7-zip öneriyoruz .
Genellikle pakette p7zip
, kendi 7z arşivlerinizi oluşturabileceğiniz 7z
ve 7za
komutunu alacaksınız .
7za
ayrıca standart ( pkzip ) zip arşivlerini de açabilir (ve bunları -tzip
anahtarla da oluşturabilirsiniz).
Sıkıştırma:
7za a archive.7z file1 file2 directory/
Açma:
7za x archive.7z
Ayrıca, -sfx
anahtarla kendiliğinden açılan arşivler oluşturabilir :
7za a -sfx archive.exe files1 file2 dir
Windows kullanıcılarının 7z arşivi açamayacağı durumlarda bu yöntemi öneririm (bunun için bir araç önermek istemeniz durumunda: PeaZip ).
Tarball'larınızla aynı sıkıştırma algoritmasını kullanmak istiyorsanız, -J
anahtarı kullanın tar
:
tar cJf archive.tar.xz file1 file2 dir
xz
sıkıştırma için LZMA2 kullanan, ancak çalışan , vb gz
, çalışan bir UNIX aracıdır bz2
. Hatta filtre olarak çalışır.
7z, UNIX'te tam dosya sistemi bilgisine sahip arşivler oluşturmaz, bu nedenle tar
7z'yi kullanmadan önce kullanmanız gerekir (ancak 7z tar
dosyayla ilgili diğer bilgileri depoladığından xz
, bunun için tasarlandığı gibi kullanmanızı öneririm ):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
, bu birçok farklı kompresörü daha rahat kullanmayı kolaylaştıran küçük bir araçtır. Bunu bağlamak a
ve bir arşiv oluşturmak a arc.7z folder/
basit bir hale gelir veya a arc.7z
unzip <filename>
ve
zip -r archive.zip <filename> [filename]
Bu komutların paket yöneticiniz tarafından yüklendiğinden emin olmanız gerekir. Komut satırında başka bir şey kullanmaktan daha zor değil. Tar ile arşiv oluşturmaktan kesinlikle daha basit.
BSD Tar da bunu yapabilir
bsdtar acf bravo.zip alfa.jpg
Veya:
bsdtar xf bravo.zip
tar
, GNU tar
ve diğerlerine kıyasla birkaç ek sıkıştırma formatını destekleme avantajına sahiptir tar
. En büyük yarar, belki de, bunun gibi bir sözdizimi kullanırken tar
yapmasıdır . Mutlaka kullanabilirsiniz 7z
, unrar
, unzip
komut ile, vs, ama onlar kullanmak farklı bir sözdizimi.
En standart cevap pax
üzerine tavsiye edilir, hangi cpio
ve tar
.
cpio
Ve POSIX'in aksine tar
, ancak GNU gibi tar
, pax
hem dosyaları arşivleyebilir hem de arşivi sıkıştırabilir. Bu davranış, zip
her dosyayı arşive koymadan önce sıkıştıran davranıştan farklıdır .
pax
Zip arşivlerini destekliyor mu ?
pax
arşivleri de desteklemiyor !
Bu sadece çıkarımı kapsar.
Bunun için kullanmaya başladım dtrx
.
Bunun amacı, karmaşıklığı ortadan kaldırmak. Böylece sadece herhangi bir arşive geçersiniz ve ne yapılması gerektiğini çözer. Zip, tar, gz ... Kullanımı her zaman aynıdır - dtrx archive.zip
. Birkaç soru sorar ve bitirdiniz.
dtrx
çoğu depoda bulunur, böylece apt
| yum
yükle.
Kendimi sık sık iş dizinimde değiştirilen dosyaları sıkıştırmaya çalışırken buluyorum - ya değiştirilen tüm dosyaları başka bir sanal alan çalışma dizinine kopyalamak ya da kısa bir süre için onları korumak için çünkü bazı değişiklikleri geri almak istiyorum.
Bu durumda, değiştirilen dosyaların listesini geçici bir dosyaya kopyalarım ve zip
bu seçenekle birlikte kullanırım -@
.
Foo.h, Bar.cc ve TestBar.cc dosyalarını değiştirdiğimi varsayalım.
Diyelim ki içeriği: modified-files.txt adlı bir dosya oluşturduğumda:
Foo.h
Bar.cc
TestBar.cc
Bu dosyaları sıkıştırmak için aşağıdaki komutu çalıştırıyorum:
cat modified-files.txt | zip modified-files.zip -@