Fichier tar avec date comme nom?


16

J'essaie de tar et gzip un fichier avec la date et l'heure comme nom:

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

Mais je reviens:

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

Que se passe-t-il exactement ici et comment puis-je y remédier?

Est-ce que tar essaie de se connecter au nom comme s'il s'agissait d'une adresse IP?


7
La norme ISO pour les dates est aaaa-mm-jjThh: mm: ss, ou +%FT%Tdans datela syntaxe de. En plus de donner la date dans un format sans ambiguïté, elle se trie bien!

@drewbenn avec la date GNU, également: date --iso-8601=s(mais il ajoute également un décalage de fuseau horaire)
muru

2
Je découragerais l'utilisation de deux points. Quelque chose de semblable 20170818_122314ou similaire est suffisamment facile à reconnaître et / ou à analyser. Les deux points causent des problèmes dans diverses situations (vous venez d'en découvrir un).
Rolf

Réponses:


31

Oui, ça l'est. Au moins pour GNU tar, la documentation dit:

Si le nom du fichier d'archive comprend un signe deux-points ( :), il est supposé qu'il s'agit d'un fichier sur une autre machine. Si le fichier d'archive l'est user@host:file, le fichier est utilisé sur l'hôte hôte . L'hôte distant est accessible à l'aide du programme rsh, avec un nom d' utilisateur d' utilisateur . Si le nom d'utilisateur est omis (avec le @signe), votre nom d'utilisateur sera utilisé. (Il s'agit du comportement rsh normal.).

Il fournit également une solution de contournement:

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

5
Solution de contournement plus courte: tar zcf ./"$date".tar.gz ...la principale spécification de chemin semble obliger tar à la traiter comme un fichier normal
muru
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.