OVH Cloud OVH Cloud

Comment tester à la fois la présence d'un fichier et la date de sa création?

1 réponse
Avatar
NSIMBA Guy
Bonjour,

Je voudrais écrire un script qui va tester l'existence d'un fichier et la
date de sa création (qui doit être la date du jour).
- Si le fichier est présent et porte la date du jour, le programme continu
(Code retour 0)
- Si le fichier n'est pas présent, le programme s'arrête (code retour 1).
- Si le fichier est présent mais ne porte pas la date du jour, le programme
s'arrête (code retour 2)

Mais j'ai du mal à transformer en code le test du fichier et de la date de
sa création.

Voici mon script. Merci de m'aider à le rendre exécutable
Merci de corriger mon script car il ne marche pas.

#!/bin/sh
# "mapasa" c'est le nom de mon fichier

if [-f mapasa ] and [mapasa (porte la date d'aujourd'hui)]"; then echo
"mapasa existe et date d'aujourd'hui"
fi
Exit 0

if [!-f mapasa] then echo "mapasa n'existe pas"
fi
Exit 1

if [-f mapasa] and [mapasa ? date_du_jour] then echo "mapasa est un fichier
ancien"
fi
Exit 2

Merci de votre aide
GUY

1 réponse

Avatar
Pascal Bourguignon
"NSIMBA Guy" writes:

Bonjour,

Je voudrais écrire un script qui va tester l'existence d'un fichier et la
date de sa création (qui doit être la date du jour).


C'est totalement impossible, sur les filesystem normaux utilisés sur unix.

La date de création des fichiers n'est pas mémoriée.


- Si le fichier est présent et porte la date du jour, le programme continu
(Code retour 0)


Comment le programme peut il à la fois continuer et retourner un code?
S'il continue, que doit il faire?


- Si le fichier n'est pas présent, le programme s'arrête (code retour 1).
- Si le fichier est présent mais ne porte pas la date du jour, le programme
s'arrête (code retour 2)

Mais j'ai du mal à transformer en code le test du fichier et de la date de
sa création.

Voici mon script. Merci de m'aider à le rendre exécutable
Merci de corriger mon script car il ne marche pas.

#!/bin/sh
# "mapasa" c'est le nom de mon fichier


On dit:

nom_fichier=mapasa


if [-f mapasa ] and [mapasa (porte la date d'aujourd'hui)]"; then echo


Il n'a pas de programme nommé [-f

"mapasa existe et date d'aujourd'hui"
fi
Exit 0

if [!-f mapasa] then echo "mapasa n'existe pas"
fi
Exit 1

if [-f mapasa] and [mapasa ? date_du_jour] then echo "mapasa est un fichier
ancien"
fi
Exit 2

Merci de votre aide


Utiliser la commande man:

man man
man sh
man test

ou chercher sur google un tutoriel sur la programmation shell, il y en
a des millions (14200000 pour être exact (tutorial shell), seulement
83800 en français (tutoriel shell)).


--
__Pascal Bourguignon__ http://www.informatimago.com/
I need a new toy.
Tail of black dog keeps good time.
Pounce! Good dog! Good dog!