Güneş solarisinde nasıl sıkıştırılmış bir katran oluşturabilirim?


11

Sun Solaris İşletim Sistemine giriş yaptım. Sıkıştırılmış bir katran dosyası oluşturmak ve çıkarmak istiyorum. Bu normal UNIX komutunu denedim:

tar -cvzf file.tar.gz directory1

Sun OS'de aşağıdaki hatayla yürütülemiyor

bash-3.2$ tar -cvzf file.tar.tz directory1
tar: z: unknown function modifier
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] [blocksize] [tarfile] [size] [exclude-file...] {file | -I include-file | -C directory file}...

2
Neden normal bir UNIX komutu olduğunu düşünüyorsunuz?
schaiba

Unixes Linux ve GNU araçları arasındaki farkları okumak için biraz zaman harcamanız gerektiğini düşünüyorum.
coteyr

4
Bu zbayrağı GNU

Yanıtlar:


28

Geçici ara dosya oluşturulmasını önlemek için bu komutu kullanabilirsiniz

tar cvf - directory1|gzip -c >file.tar.gz

2
Bu işlemin bir kısmının paralel olarak gerçekleşme potansiyeli vardır.
psmears

Is f -gerekli veya Solaris gelmez tarçıkış varsayılan olarak stdout'a?
Mark

2
@Mark: Man sayfasına göre , " fAtlanırsa, ayarlanmışsa ortam değişkeni tartarafından belirtilen aygıtı kullanır TAPE; aksi takdirde, içinde tanımlanan varsayılan değerleri kullanır /etc/default/tar." Yani, hayır, güvenli bir şekilde f -gerekli olmadığını varsayabileceğiniz gibi görünmüyor .
Ilmari Karonen

@Romeo: Cevabınız için teşekkürler, yararlı buldum. CVF ve dizin adı arasında neden "-" gerektiğini açıklayabilir misiniz? Ayrıca, birkaç işletim sisteminde - Solaris 10, 11.4, Linux (RHEL, CentOS, Oracle, vb.) Komutunuzu denedim ve sürekli çalışıyor. Ayrıca ilgili katran sayfalarını da inceledim - yukarıdakiler neden cvf'den önce "-" olmadan Linux'ta çalışıyor? Linux'un "tar -cvf ...." gibi bir şeye ihtiyaç duymasını beklerdim. Cevap için tekrar teşekkürler.
rc1

@ rc1, katrandaki çizgi, çıktı dosyasını STDOUT olarak ayarladığınız anlamına gelir. İki parametre stili vardır: BSD ve SYSV. Ve Linux katranı her ikisiyle de çalışır (
cvf'den

10

Gibi görünüyor Solaris en tarsıkıştırmak için nasıl bilmiyor. Sadece manuel olarak yapın:

tar -cvf file.tar directory1 && gzip file.tar

Her -zneyse, GNU katranın yaptığı tüm bu değişim. Yukarıdaki komut üretecektir file.tar.gz.


Bu işe yarayacaktır (ara sıkıştırılmamış file.tararşivi depolamak için yeterli yedek disk alanınız olduğu sürece ), ancak gereksiz yere yavaş ve boşa harcanan disk alanıdır. Bunun Romeo Ninov'un cevabına tercih edileceği bir durum düşünemiyorum .
Ilmari Karonen

1
@IlmariKaronen ben de bunu yapamam. İlk önce bunu düşündüm.
terdon

2

SUNWgtarYüklü olup olmadığınızı kontrol edin . Bu, GNU seçeneklerinin katranına izin veren GNU versiyonudur tarve sağlar /usr/sfw/bin/gtar.


-1

Lütfen aşağıdaki komutu deneyin

tar -cvf file.tar directory1 && gzip file.tar

(dosyayı solaris'e sıkıştırmak için)

gunzip file.tar.gz

(açmak için)



Ayrıca, dosyaların arşivini kaldırmak yerine, tüm tar dosyasını (başlıklardaki tüm ikili dosyalar dahil) terminale döker. Muhtemelen daha sonra terminali sıfırlamanız gerekir.
Paul_Pedant
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.