Başka bir tar dosyasındaki dosyalar listesinden bir tar dosyasını nasıl oluşturabilirim?


0

Güncelleştirilmesi gereken dosyaların kopyalarını içeren bir tar dosyası oluşturan bir işlem var.

Yeni dosyaların üzerine yazmadan önce mevcut dosyaları yedeklemek istiyorum.

denedim

tar cf backup.tar -T `tar tf updated.tar`

Hangi işe yaramadı. Çıktıyı tar tf'den bir dosyaya aktarırsam, -T param olarak çalıştığında bunu kullanın:

tar tf updated.tar > list; tar cf backup.tar -T list

Fakat bana öyle geliyor ki, bunu tek bir komutta başarabilmeliyim. Mümkün mü?

Yanıtlar:


3

belirtmek stdin giriş dosyası olarak, örneğin:

tar tf updated.tar | tar cf backup.tar -T -


1

-T seçeneği özellikle bir liste değil, bir dosya arıyor. İlk girişiminiz -T'ye bir liste gönderir, bu yüzden muhtemelen işe yaramadı. Gibi bir şey denerim:

tar tf updated.tar | xargs tar cf backup.tar

1
Bu, bazı nadir durumlarda başarısız olabilir. İzin verilen maksimum komut satırı bağımsız değişkenleri sınırlıdır. Görmek getconf ARG_MAX.

İyi nokta ... öyleyse H. Dirk Schmitt'in cevabı muhtemelen daha iyi.
John

@ H.-DirkSchmitt: Bu not edilmelidir xargs normalde bu komutu komutu çoklu çağrılara bölerek halleder. (Sadece bir saniyeden beri burada beklendiği gibi çalışmıyor tar c ilk çıktının üzerine yazar.)
grawity

-1

Bu komutu kullanıyorum:

tar cf backup.tar `tar tf updated.tar`
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.