File tar dengan tanggal sebagai nama?


16

Saya mencoba membuat tar dan gzip file dengan tanggal dan waktu seperti namanya:

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

Tapi saya kembali:

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

Apa sebenarnya yang terjadi di sini dan bagaimana cara memperbaikinya?

Apakah tar mencoba terhubung ke nama seolah-olah itu adalah ip?


7
Standar ISO untuk tanggal adalah yyyy-mm-ddThh: mm: ss, atau +%FT%Tdalam datesintaksis. Selain memberikan tanggal dalam format yang tidak ambigu, itu juga baik!

@drewbenn dengan tanggal GNU, juga: date --iso-8601=s(tetapi juga menambahkan zona waktu)
muru

2
Saya akan mencegah menggunakan titik dua. Sesuatu seperti 20170818_122314atau serupa cukup mudah dikenali dan / atau diurai. Titik dua menyebabkan masalah dalam berbagai situasi (Anda baru menemukannya).
Rolf

Jawaban:


31

Ya itu. Setidaknya untuk GNU tar, dokumentasi mengatakan:

Jika nama file arsip menyertakan titik dua ( :), maka diasumsikan sebagai file di komputer lain. Jika file arsip user@host:file, maka file digunakan pada host host . Host jarak jauh diakses menggunakan program rsh, dengan nama pengguna pengguna . Jika nama pengguna dihilangkan (bersama dengan @tanda), maka nama pengguna Anda akan digunakan. (Ini adalah perilaku normal rsh.).

Ini juga menyediakan solusi:

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

5
Solusi lebih pendek: tar zcf ./"$date".tar.gz ...Spesifikasi jalur utama tampaknya membuat tar memperlakukannya sebagai file biasa
muru
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.