J'essaie d'exécuter une commande et je voudrais mettre la date et l'heure dans le nom du fichier de sortie.
Voici un exemple de commande que j'aimerais exécuter.
md5sum /etc/mtab > 2016_4_25_10_30_AM.log
Le format de la date et de l'heure peut être tout à fait sensé avec des traits de soulignement. Même UTC si l'AM et le PM ne peuvent pas être utilisés.
Réponses:
Si vous souhaitez utiliser le datetime actuel comme nom de fichier, vous pouvez utiliser
date
et remplacer la commande .Il en résulte que le fichier
2016_04_25_10_30_AM.log
(bien que, avec l'heure actuelle) soit créé avec le hachage md5/etc/mtab
comme contenu.Veuillez noter que les noms de fichiers contenant des horodatages au format 12 heures ne seront probablement pas triés par nom comme vous le souhaitez. Vous pouvez éviter ce problème en utilisant des horodatages au format 24 heures à la place.
Si vous n'êtes pas obligé d'utiliser ce format de date spécifique, vous pouvez envisager d'utiliser un format datetime conforme à ISO 8601. Voici quelques exemples de génération de représentations datetime ISO 8601 valides:
Si vous voulez des noms de fichiers "plus sûrs" (par exemple, pour des raisons de compatibilité avec Windows), vous pouvez omettre les deux-points de la partie temporelle.
Veuillez garder à l'esprit que les exemples ci-dessus supposent tous l'heure locale du système. Si vous avez besoin d'une représentation horaire cohérente d'un fuseau horaire à l'autre, vous devez spécifier un décalage de fuseau horaire ou UTC. Vous pouvez obtenir un décalage de fuseau horaire conforme à la norme ISO 8601 en utilisant "% z" dans la partie format de votre
date
appel comme ceci:Vous pouvez obtenir l'heure UTC dans votre
date
appel en spécifiant l'-u
indicateur et en ajoutant "Z" à la fin de la chaîne datetime pour indiquer que l'heure est UTC comme ceci:la source
$(date +%FT%T)
qui donnera2016-04-25T10:30:00
.