Tarih olarak tar dosyası?


16

Tar ve adı olarak tarih ve saat ile bir dosya gzip çalışıyorum:

date=$(date '+%d-%m-%Y_%H:%M:%S');    
tar -zcf "$date".tar.gz repo/bin/

Ama geri dönüyorum:

tar (child): Cannot connect to 17-08-2017_21: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now

Burada tam olarak neler oluyor ve nasıl düzeltebilirim?

Tar isme bir ipmiş gibi bağlanmaya çalışıyor mu?


7
Tarihlerde ISO standardı dd:: ya ss yyyy-aa-ddThh olduğu +%FT%Tiçinde datesözdizimi 'ın. Tarihi açık bir biçimde vermenin yanı sıra, güzel bir şekilde sıralıyor!

@drewbenn ile GNU tarihi, ayrıca: date --iso-8601=s(ama aynı zamanda bir saat dilimi farkı ekler)
muru

2
İki nokta üst üste kullanmaktan vazgeçiririm. Benzeri 20170818_122314veya benzeri bir şeyi tanımak ve / veya ayrıştırmak yeterince kolaydır. Sütunlar çeşitli durumlarda sorun yaratır (sadece birini keşfettiniz).
Rolf

Yanıtlar:


31

Evet öyle. En azından GNU katranı için belgeler şöyle diyor:

Arşiv dosyası adı iki nokta üst üste ( :) içeriyorsa , başka bir makinede bir dosya olduğu varsayılır. Arşiv dosyası ise user@host:file, ana bilgisayar ana bilgisayarında dosya kullanılır . Uzak ana bir kullanıcı adına sahip rsh programı kullanılarak erişilir kullanıcı . Kullanıcı adı atlanırsa ( işaretiyle birlikte ), kullanıcı adınız kullanılır. (Bu normal rsh davranışıdır.).@

Ayrıca bir çözüm sağlar:

--force-local
      Archive file is local even if it has a colon.

5
Daha kısa çözüm: tar zcf ./"$date".tar.gz ...
Başlıca
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.