Komut gzip (tar değil - gerekli) ile bir arşiv oluşturmak zorunda ve arşiv başka bir dizinden dosyaları içermelidir - örneğin, / vb. Komutu kullanmaya çalıştım
gzip myetc.gz /etc
Ama işe yaramadı.
Komut gzip (tar değil - gerekli) ile bir arşiv oluşturmak zorunda ve arşiv başka bir dizinden dosyaları içermelidir - örneğin, / vb. Komutu kullanmaya çalıştım
gzip myetc.gz /etc
Ama işe yaramadı.
Yanıtlar:
Gzip yalnızca tek bir dosya veya gzip'e aktarılan bir akışla çalışır. Bu yüzden önce tar ile olduğu gibi bir dosya oluşturmanız gerekir ve sonra bunu gzip edebilirsiniz. Diğer seçenek, tüm ayrı dosyaları gziplemek ve daha sonra bunu tek bir dosyaya katlamaktır.
Bu çözümlerin her ikisi de aptaldır ve kullanılmamalıdır. Dahili sıkıştırma seçeneği ile tar kullanmalı ve hepsini tek bir komutta yapmalısınız.
.tar.gz
...
cat filename | grep blah
aptalca. Ayrıca optimumdan çok daha azdır, çünkü geniş bir ara alan kullanır. Bu kadar sadakatsiz, yetersiz ve genel olarak sadece çirkin diyebilir miyim bilmiyorum. Aptalca da çalışır.
fork()
.
gzip
dizinlerle değil dosyalarla çalışır. Bu nedenle, kullanmanız gereken bir dizinin arşivi tar
oluşturmak için (birden çok dosyadan tek bir tarball oluşturacaktır):
tar cvf myetc.tar /etc
veya sıkıştırılmış bir arşiv için:
tar cvzf myetc.tar.gz /etc
cd / ; tar cf - ./etc | gzip -c - > myetc.tar.gz
("/ etc" yerine neden "tar / .cet" yazdığımı merak ediyorsanız, bunun nedeni eski sistemlerde, tar kullanırken xvf, / etc çıktısına yazar ve üzerine yazar ... [veya bu durumda "pax" kullanmanız gerekir]). Ters komut, yani "/ bir yerde" altındaki bu arşiv çıkarmak için: cd /somewhere ; gzip -dc < /the/location/of/myetc.tar.gz | tar xvf -
Gerçekten katranınız yoksa, (-r - özyinelemeli) seçeneğini kullanarak bir dizinin yedeğini oluşturmak için gzip'i kullanabilirsiniz, ancak belki de tam olarak beklediğiniz şey değildir ...
Orijinal dizini dokunulmaz tutmak istiyorsanız, önce dizininizi başka bir ada kopyalamanız gerekir.
#cp -a directory my_gzip_alone_backup
İkinci olarak, dizindeki tüm dosyaları özyinelemeli olarak sıkıştırırsınız (-r).
#gzip -r my_gzip_alone_backup
Şimdi my-gzip-alone-yedeğinin içine bir göz atalım. Beklediğiniz gibi myfile.gz adlı tek bir dosyaya sahip olmayacaksınız, ancak çok fazla dosya özyinelemeli olarak gziped. Ancak sembolik bağlantılar nedeniyle bunu vb. İle yapmak iyi değildir ...
Dizini açmak için gunzip ile aynı mantık uygulanabilir.
Başka bir yol, bunu yapmak için katranınız yoksa, ancak bu yayında gösterildiği gibi dd util'iniz varsa, dizini tek bir dosyaya dönüştürmektir: /ubuntu/626634/converting-a -dosyadan-dizin
gzip
değilzip
. Farklı çalışan farklı araçlardır.