¿Archivo tar con fecha como nombre?

16

Estoy tratando de tar y gzip un archivo con fecha y hora como nombre:

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

Pero vuelvo:

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

¿Qué está sucediendo exactamente aquí y cómo puedo solucionarlo?

¿Tar intenta conectarse al nombre como si fuera una ip?

Philip Kirkbride
fuente
77
El estándar ISO para fechas es aaaa-mm-ddThh: mm: ss, o +%FT%Ten datela sintaxis de. Además de dar la fecha en un formato inequívoco, ¡se ordena muy bien!
@drewbenn con fecha GNU, también: date --iso-8601=s(pero también agrega un desplazamiento de zona horaria)
muru
2
Me disuadiría de usar dos puntos. Algo parecido 20170818_122314o similar es lo suficientemente fácil de reconocer y / o analizar. Los dos puntos causan problemas en varias situaciones (usted acaba de descubrir uno).
Rolf

Respuestas:

31

Sí lo es. Al menos para GNU tar, la documentación dice:

Si el nombre del archivo incluye un signo de dos puntos ( :), entonces se supone que es un archivo en otra máquina. Si el archivo de almacenamiento es user@host:file, entonces el archivo se usa en el host host . Se accede al host remoto utilizando el programa rsh, con un nombre de usuario de usuario . Si se omite el nombre de usuario (junto con el @signo), se utilizará su nombre de usuario. (Este es el comportamiento rsh normal).

También proporciona una solución alternativa:

--force-local
      Archive file is local even if it has a colon.
conductor de acero
fuente
55
Más corto solución: tar zcf ./"$date".tar.gz ...La especificación camino que conduce parece hacer alquitrán lo tratan como un archivo normal
Muru