Bir klasörü (tar) klasör adında içeren bir dizin olmadan sıkıştırma


21

Bir klasörü tarkomutla sıkıştırmaya çalışıyorum .

Sıkıştırmaya çalışırken, iyi çalışıyor. Sorun dosya ismiyle ilgili.

Kaynak yolu:

/data/file/

Hedef yol:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

Komutu farklı bir klasörden çalıştırıyorum ve klasörü çıkartırken sadece dosya klasörü yerine tüm alt dizinleri alıyorum.


1
katran sözdizimi: tar zcvf file.tar.gz /path/dir/to/compressbelki komutunuzla değiştirmelisiniz tar zcvf $destinationpath $srcpathama ne gerek bana belirsizdir. Sorunuzu tar komutundan ne beklediğinizi örnek olarak açıklayabilir misiniz?
Lety

yorum için teşekkürler, benim sorunum burada paylaştığınız yorumu aşağıdaki gibidir "tar zcvf file.tar.gz / path / dir / to / compres" Bu aynı dizinde iseniz "iyi çalışıyor olmalı" davam farklı bir dizinden çalışıyoruz, örneğin: / home / testuser1 / file: dosya sıkıştırmak istediğim klasör ve evdeki değil kök dizininden çıkarıyorum, böylece klasöre tüm yolu vermemiz gerekebilir / home / testuser1 / dosyasındaki tüm alt dizinleri dosya klasörü yerine alıyorum
Seetha Raman

Muhtemelen bir yazım hatası, ama sizin örneğinizde, kaynak ve hedef karışık.
Jacob Vlijm

Yanıtlar:


49

Bunu yapmanın en kolay yolu, önce dizine cd yapmaktır:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

Böylece (içeren) klasörünün dizini, sıkıştırılmış dosyanızın kök dizini haline gelir.

Biraz daha gelişmiş -C seçeneğini kullanıyor:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

Bu tar.gz, geçerli (çalışan) dizinde, içindeki tüm dosyaları / klasörleri içeren bir dosya oluşturur foldername_tocompress(noktaya dikkat edin, tüm dosyaların / klasörlerin dahil edilmesi gerektiğini söyleyin).


4
İkinci komutunuzun sonundaki nokta, geçerli dizindeki tüm dosyaları içerecektir ...
David Duncan
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.