[UNIX] Comparaison de fichier

Résolu/Fermé
Camomille
Messages postés
15
Date d'inscription
samedi 28 juillet 2001
Statut
Membre
Dernière intervention
3 décembre 2015
- 22 janv. 2007 à 02:42
Camomille
Messages postés
15
Date d'inscription
samedi 28 juillet 2001
Statut
Membre
Dernière intervention
3 décembre 2015
- 23 janv. 2007 à 14:24
Salut à vous,

je me suis cassé la tête toute la journée avant de vous demander de l'aide!!
J'emploie un récepteur satellite "linux-based" qui n'a pas les commandes diff ou comm. d'où [UNIX] !!
J'aimerais pouvoir comparer si un fichier downloadé est plus récent que celui déjà présent.
Le problème est que mon fichier downloadé sera toujours plus récent que celui déjà présent!
J'avais essayé avec cette commande;
if [ /var/tmp/fichie -nt /var/xxxx/fichier ]
Voyez vous un aure moyen de comparer deux fichiers (*.bin) ?

J'avais pensé inscrire la date de download dans un autre fichier afin de comparer, mais ici aussi je me plante royalement!

Un grand merci pour votre aide, avis ou commentaires

2 réponses

jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
22 janv. 2007 à 07:35
Salut,

Regarde si tu as la commande "stat" sur ton système...
Sinon "ls -lt" ou "ls -lu" ou encore "ls --full-time".

;-))
1
Camomille
Messages postés
15
Date d'inscription
samedi 28 juillet 2001
Statut
Membre
Dernière intervention
3 décembre 2015
8
22 janv. 2007 à 14:37
Meri pour ta réponse.

"stat" n'est malheureusement pas présent !
Je ne suis pas trop convaincu ou (surtout ! ) ne connais pas assez les commandes "ls" pour faire en faire une condition "if....then ".

Une autre idée sur laquelle j'avais travaillé est de créer un petit fichier dans lequel est écrit la date d'upload. Cela m'aurait en plus permis de pouvoir afficher la date de la dernière modification. Mais ici aussi mes premiers essais n'étaient pas concluant!!
Et comme je n'ai pas honte de dire que je suis débutant, voici une portion de mon script:

FILEnew=/var/tmp/fichier
FILEcurrent=/var/xxx/fichier
new=grep '[0-9]' $FILEnew
current=grep '[0-9]' $FILEcurrent

if [ $new = $current ];
then ...........................

Je sais que j'ai encore beaucoup à apprendre. Je ne demande pas qu'on écrive mon script mais un simple coup de pouce pour me permettre de piger et de l'écrire moi-même!!

Mille merci de me mettre sur le bon chemin.

Bien amicalement.

Camomille
0
Camomille
Messages postés
15
Date d'inscription
samedi 28 juillet 2001
Statut
Membre
Dernière intervention
3 décembre 2015
8
23 janv. 2007 à 14:24
Merci pour les bonnes suggestions de solution.

Je m'en suis tiré en downloant premièrement un fichier contenant la date d'upload du binary (maj.txt). Ce fichier est conservé dans le récepteur et remplacer lorsqu'un update a eu lieu.
Mon script compare les deux fichiers et décide (ou non ) de downloader la mise à jour:

wget http://www.mondomaine.com/xxx/maj.txt -O /tmp/maj.txt
new=`cat /tmp/maj.txt | grep -i "200" `
current=`cat /var/camo/maj.txt | grep -i "200" `

if [ $new = $current ];
then......

Encore mille mercis

Camo
0