File tar con data come nome?


16

Sto cercando di tar e gzip un file con data e ora come il nome:

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

Ma torno:

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

Cosa sta succedendo esattamente qui e come posso risolvere?

Tar sta provando a connettersi al nome come se fosse un IP?


7
Lo standard ISO per le date è yyyy-mm-ddThh: mm: ss o +%FT%Tnella datesintassi di. Oltre a dare la data in un formato inequivocabile, si ordina bene!

@drewbenn con data GNU, anche: date --iso-8601=s(ma aggiunge anche un offset del fuso orario)
muru,

2
Scoraggerei dall'utilizzare i due punti. Qualcosa di simile 20170818_122314o simile è sufficientemente facile da riconoscere e / o analizzare. I due punti causano problemi in varie situazioni (ne hai appena scoperto uno).
Rolf,

Risposte:


31

Sì. Almeno per il tar GNU, la documentazione dice:

Se il nome del file di archivio include due punti ( :), si presume che sia un file su un altro computer. Se il file di archivio è user@host:file, il file viene utilizzato sull'host host . L'host remoto è accessibile usando il programma rsh, con un nome utente dell'utente . Se il nome utente viene omesso (insieme al @segno), verrà utilizzato il nome utente. (Questo è il normale comportamento rsh.).

Fornisce inoltre una soluzione:

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

5
Soluzione alternativa più breve: tar zcf ./"$date".tar.gz ...la specifica del percorso principale sembra far sì che tar lo tratti come un file normale
muru,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.