Aller au contenu

Shell - R


Messages recommandés

Bonjour,

dans le cadre d'un script qui archive les fichiers du repertoire courant dans un repertoire qui doit porter en nom une date, j'ai besoin de récupérer la date d'hier.

Avec la date du jour, pas de soucis :

DS213> date +%F
2014-11-04
DS213>

Mais quand je veux récupérer la date d'hier, impossible, je n'ai pas la bonne synthaxe,

Pourtant quand je regarde les exemples sur internet, il ne me semble pas m'etre trompé.

Et pas de man installé sur le syno, du coup je n'ai pas d'exemple d'utilisation

DS213> date --date 'yesterday'
date: invalid date 'yesterday'

DS213> date --date
date: option '--date' requires an argument
BusyBox v1.16.1 (2014-05-29 11:39:14 CST) multi-call binary.

Usage: date [OPTIONS] [+FMT] [TIME]

Display time (using +FMT), or set time

Options:
[-s,--set] TIME Set time to TIME
-u,--utc Work in UTC (don't convert to local time)
-R,--rfc-2822 Output RFC-2822 compliant date string
-I[sPEC] Output ISO-8601 compliant date string
SPEC='date' (default) for date only,
'hours', 'minutes', or 'seconds' for date and
time to the indicated precision
-r,--reference FILE Display last modification time of FILE
-d,--date TIME Display TIME, not 'now'
-D FMT Use FMT for -d TIME conversion

Recognized TIME formats:
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]

DS213>

j'ai essayé avec '1 day ago', mais ca ne fonctionne pas non plus.

Si quelqu'un peut me mettre sur la voie..

merci

seb

Lien vers le commentaire
Partager sur d’autres sites

Toute façon, je pense que la manière de Mike reste plus rapide.

par contre, c'est bizarre, mais avec l'option de mike, l'heure est pas bonne

je ne sais pas vraiment pourquoi, mais faut plutot utiliser la commande suivante pour conserver l'heure correcte :

echo `TZ=MET+23 date  +"%d/%m/%Y %H:%M:%S"`

si quelqu'un a une explication sur le 23 et pas 24 pour que ca fonctionne ...

Modifié par Gaetan Cambier
Lien vers le commentaire
Partager sur d’autres sites

Autre approche:

/bin/date -D %s -d $(( $(/bin/date +%s) - 86400)) +"%d/%m/%Y %H:%M:%S"

pas besoin de perl

La date est calculée avec le timezone courant.

NB: J'ai mis le chemin explicite "/bin/date" au cas ou certains auraient bidouillé le PATH avec une autre commande "date" par défaut.

Lien vers le commentaire
Partager sur d’autres sites

Autre approche:

/bin/date -D %s -d $(( $(/bin/date +%s) - 86400)) +"%d/%m/%Y %H:%M:%S"
pas besoin de perl

La date est calculée avec le timezone courant.

NB: J'ai mis le chemin explicite "/bin/date" au cas ou certains auraient bidouillé le PATH avec une autre commande "date" par défaut.

En fait c'est a ça que j'avais voulu arriver mais sans succès :s
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.