Recherche de site Web

Arithmétique d’addition et de soustraction avec la commande de date Linux


La commande date sous Linux peut être utilisée pour voir la date et l’heure actuelles, mais nous pouvons également utiliser l’arithmétique d’addition et de soustraction avec la commande pour étendre ses fonctionnalités. Par exemple, au lieu de voir la date actuelle, nous pouvons voir la date et l’heure d’il y a cinq jours, cinq ans dans le futur, etc. Les possibilités ici sont infinies.

Cela devient utile dans de nombreuses situations. Par exemple, lorsque vous créez des sauvegardes, vous pouvez utiliser la commande date pour attribuer aux fichiers un nom daté, ou même pour supprimer des sauvegardes plus anciennes en utilisant une arithmétique de soustraction. Nous couvrirons cet exemple spécifique ci-dessous afin que vous puissiez le voir en action, mais comme vous pouvez l’imaginer, il y a beaucoup d’autres cas où ce serait pratique.

Dans ce guide, vous verrez divers exemples de commandes de date impliquant l’addition et la soustraction. N’hésitez pas à utiliser ces commandes sur votre propre système ou dans vos propres scripts pour vous familiariser avec la commande.

Dans ce tutoriel, vous allez apprendre :

  • Exemples d’arithmétique et de soustraction de commande de date

Exemples d’addition et de soustraction avec la commande date sous Linux

Exemples d’arithmétique de date et de soustraction

  1. Commençons par une simple commande de sauvegarde basée sur la commande date Linux :

    tar cjf linuxconfig_$(date +%H%M-%d%m%Y).tar.bz2 ~/public_html
    
  2. Chaque fois que la commande est exécutée, elle crée un fichier avec la date du jour incluse dans le nom du fichier.

  3. Nous ne voulons généralement pas conserver tous les fichiers de sauvegarde indéfiniment ou jusqu’à ce qu’ils consomment tout l’espace libre disponible. C’est là que l’arithmétique de soustraction avec la commande de date Linux devient pratique. Voyons quelques exemples de la façon de soustraire du temps d’une date actuelle à l’aide d’une chaîne de date. Soustrayez 10 ans d’une date actuelle :

    date
    Tue Jul 13 21:12:52 EDT 2021
    date --date="10 years ago" +%H%M-%d%m%Y
    2112-13072011
    
  4. Soustrayez 3 mois de la date actuelle :

    date
    Tue Jul 13 21:13:47 EDT 2021
    date --date="3 months ago" +%H%M-%d%m%Y
    2113-13042021
    
  5. Soustrayez 255 jours de la date actuelle :

    date
    Tue Jul 13 21:14:17 EDT 2021
    date --date="255 days ago" +%H%M-%d%m%Y
    2114-31102020
    
  6. Soustrayez 32 semaines de la date actuelle :



    date; date --date="32 weeks ago" +%H%M-%d%m%Y
    Tue Jul 13 21:15:10 EDT 2021
    2015-01122020
    
  7. Soustrayez les heures et les minutes de la date actuelle :

    date; date --date="5 hours ago" +%H%M-%d%m%Y
    Tue Jul 13 21:16:01 EDT 2021
    1616-13072021
    
  8. Comme vous pouvez probablement le deviner, nous suivons le même format pour soustraire les minutes de la date actuelle :

    date; date --date="5 minutes ago" +%H%M-%d%m%Y
    Tue Jul 13 21:16:45 EDT 2021
    2111-13072021
    
  9. Nous pouvons maintenant améliorer notre script de sauvegarde simple pour ne garder que les fichiers qui n’ont pas plus de 6 mois :

    #!/bin/bash
    
    tar cjf linuxconfig_$(date +%H%M-%d%m%Y).tar.bz2 ~/public_html
    rm linuxconfig_$(date --date="6 months ago" +%H%M-%d%m%Y).tar.bz2
    
  10. Aller dans le futur avec la commande date est aussi simple que d’aller dans le passé. Tout ce qu’il faut faire est d’ajouter le signe « - » ( moins ) devant chaque chaîne de date. Par exemple, vous pouvez demander à la commande date d’ajouter 12 heures à une date et une heure actuelles :

    date; date --date="-12 hours ago" +%H%M-%d%m%Y
    Tue Jul 13 21:17:56 EDT 2021
    0917-14072021
    
  11. Sur certains systèmes Unix, la syntaxe de date décrite ci-dessus peut ne pas être disponible. Dans ce cas, voici un exemple simple sur la façon de faire tout ce qui précède en utilisant le temps d’époque. le temps d’époque est simplement un nombre de secondes depuis « Jan 1, 1970 00:00:00 ». Par conséquent, le temps d’époque « 1 » en utilisant le temps universel est :

    date -ud@1
    Thu Jan  1 00:00:01 UTC 1970
    
  12. Voyons comment nous pouvons soustraire 2 semaines, 3 jours et 23 secondes d’une date actuelle en utilisant l’heure de l’époque. Comme cela se produirait il y a 1 468 823 secondes, le calcul ressemblerait à ceci :

    date;echo `date --universal +%s` - 1468823 | bc
    Tue Jul 13 21:19:37 EDT 2021
    1624756754
    
  13. La seule chose qui reste à faire est de convertir la sortie. Echo time au format de date universel lisible par l’homme :

    date -ud@1624756754
    Sun Jun 27 01:19:14 UTC 2021
    
  14. Pour ajouter 2 semaines, 3 jours et 23 secondes, utilisez le même processus, mais utilisez l’addition au lieu de la soustraction :

    date;echo `date --universal +%s` + 1468823 | bc
    Tue Jul 13 21:22:13 EDT 2021
    1627694556
    
  15. Convertir l’heure de l’époque :

    date -ud@1627694556
    Sat Jul 31 01:22:36 UTC 2021
    

Réflexions finales

Dans ce guide, nous avons vu comment utiliser l’arithmétique d’addition et de soustraction avec la commande date sous Linux. Cela a de nombreuses applications, dont les noms de fichiers horodatés, comme nous l’avons vu dans les exemples ci-dessus. Que vous choisissiez d’utiliser l’heure d’époque ou l’heure normale avec date, Linux vous permet de calculer rapidement des valeurs de date arbitraires et d’attribuer ces variables aux noms de fichiers ou à toute autre utilisation que vous pourriez avoir.

Articles connexes: