tar: Üst dizin dizinine isteğe bağlı olarak önde gelen dizinleri içeren bir tar dosyası nasıl oluşturulur


23

Diyelim ki bir dosya dizinim var.

/home/user1/dir1

ve öncü dizin olarak sadece "dir1" ile bir tar oluşturmak istiyorum:

/dir1/file1
/dir1/file2

Dizine ilk cd gelebileceğimi biliyorum.

cd /home/user1/
tar czvf dir1.tar.gz dir1

Ancak komut dosyaları yazarken, dizinden dizine geçmek her zaman uygun değildir. Merak ediyorum, mevcut dizinleri değiştirmeden mutlak yollarla yapmanın bir yolu var mı?

Her zaman mutlak INSIDE yolları olan bir tar dosyası oluşturabileceğimi ve kullanabileceğimi biliyorum.

--strip-components 

ayıklanırken bazen ek yol adları, tar dosyalarınızla birlikte dağıtmak istemediğiniz ek özel bilgilerdir.

Teşekkürler!

Yanıtlar:


24

tar -C dizini değiştirir

tar -C /home/user1/ -cvzf dir1.tar.gz dir1

BTW, değişen dizinleri takip etmek için kullanışlı bir ... pushd ve popd kullanın.

pushd .
cd /home/user1
tar cvfz dir1.tar.gz
popd

1
Teşekkürler. "-C" seçeneğinin diğer seçeneklerden önce kullanılması gerektiğini bilmiyordum ... "tar -cvzf dir1.tar.gz dir1 -C / home / user1 /" ı daha önce denedim ama işe yaramadı.
Yan

1
Çalışmıyor: tar: dir:
Statü

21

Gnu tar ile, asıl olandan farklı bir temel dizine sahip bir arşiv oluşturabilirsiniz:

tar -c --transform 's,^\.,mybasedir,' .

Sadece sed ifadesini ihtiyaçlarınıza göre uyarlayın.


5

Tamam, ben de öğrendim

tar -czvf file1.tar.gz /home/user1/dir1/../dir1

ayrıca istediğim gibi çalıştı.


Her ne kadar "*" gibi joker karakterler çalışmazsa
Curtis Yallop

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.