Anında çıktının katranı / yıldızını kaldırma


27

Aşağıdakileri yapmanın deyimsel yolu nedir

  • tardan stdout'a
  • stdout'tan bu tar çıkışını okuyun ve başka bir klasöre çıkarın.

Benim çözümüm tar --to-stdout .. | tar -C somefolder -xvf -

Ancak, bunu yapmanın daha aptalca bir yolu olabilir.

Yanıtlar:


34

Aynı -f -seçenek tarring için de geçerlidir.

tar -cf - something | tar -C somefolder -xvf -

GNU tar varsayılan olarak stdio kullanır:

tar -c something | tar -C somefolder -xv

rsync de popülerdir.

rsync -av something/ somefolder/

9

Buraya başka bir kullanım davası ekliyorum. Neredeyse disk alanı yetersiz bir sistemde büyük bir dizin yapısına sahiptim ve dizin yapısının tar.gz dosyasını başka bir makinede çok fazla alana sahip yapmak istedim.

tar -czf - big-dir | ssh user@host 'cat > /path/to/big-dir.tar.gz'

Bu, ağ yükü tasarrufu sağlar ve transfer için rsync kullanmak istemeniz durumunda diğer tarafta katran yapmanız gerekmediği anlamına gelir.


Netcat bunun için idealdir. (Bir ana bilgisayardan diğer ana bilgisayara Cat).
Hennes

3
@Hennes: Kimlik doğrulama eksikliği, bütünlük kontrolü, veri şifreleme yanı sıra her bir aktarma için her iki tarafta da manuel olarak başlatılması gerektiğinden (örneğin, işin 2
katı

Çoğu zaman ağa dökmeden önce onu sıkıyorum. Bütünlük başarısızlıklarının dekompresyon hataları olarak görülmesi muhtemeldir (kullandığımda hiçbir zaman almadım). İki program başlatmaya gelince: Evet, doğru.
Hennes

3
Daha fazla iş olabilir, ancak güvenli bir yerel ağdaki makineler arasında veya bir VPN üzerinden makineler arasında zamana duyarlı bir işlem sırasında bir bağlantı üzerinden büyük bir sıkıştırılmış arşiv göndermek için nc üzerinden boru bağlantısı SSH'den (1 Gb'lik bir ağ üzerinden) önemli ölçüde daha hızlı olacaktır. 2 faktörü ile). Bütünlük kontrolü için arşivin bir md5 toplamı üzerinden gönderin.
Biriktirici
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.