Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # !/bin/bash
- # Programme principal prennant 2 repertoires en arguments (chemins)
- # vérifie si le deux repertoires donnés en arguments ont
- # les mèmes entrées (noms) et vérifie si les fichiers avec
- # le mème nom ont le mème contenu
- # modifie le fichier comparaison quand il y a un changement
- function compareRepertoire
- {
- if [[ !(-d $1) || !(-d $2) ]]
- then
- # les arguments ne sont pas des repertoires
- return 2
- fi
- # on parcours tout le 1er repertoire pour trouver les
- # entrées présente dans $1 mais pas dans $2
- for entree in $(ls $1)
- do
- find $2 -name $entree -print
- # TODO si le fichier est trouvé, utilisé la fonction
- # compareFichier
- # TODO si le fichier n'est pas trouvé ou que le contenu
- # n'est pas le mème, l'écrire dans le fichier comparaison
- # TODO Si on trouve un repertoire present dans
- # les deux arboresances comparées, alors on le parcours
- # pour comparer a nouveau
- done
- # on parcours tout le 2eme repertoire pour trouver les
- # entrées présente dans $2 mais pas dans $1
- for entree in $(ls $2)
- do
- find $1 -name $entree -print
- # TODO si le fichier est trouvé, utilisé la fonction
- # compareFichier
- # TODO si le fichier n'est pas trouvé ou que le contenu
- # n'est pas le mème, l'écrire dans le fichier comparaison
- # TODO Si on trouve un repertoire present dans
- # les deux arboresances comparées, alors on le parcours
- # pour comparer a nouveau
- done
- }
- function compareFichier
- {
- > resultat
- cmp $1 $2 > resultat
- # le fichier resultat est toujours vide avant l'execution de cmp
- # la permission -s permet de vérifier que resultat a une taille
- # différente de 0 (quand il y a une différence entre les 2 entrées)
- if [[ -s resultat ]]
- then
- return 1
- # le programme appelant utilise le fichier resultat pour
- # connaitre l'emplacement des différences entre les fichiers
- else
- return 0
- fi
- }
- function estPlusAncien
- {
- # stat -c %Y donne une duree en seconde par rapport a l'epoch
- # (date initiale du système d'exploitation)
- a=$(stat -c %Y $1)
- b=$(stat -c %Y $2)
- set $a $b
- if (($2 < $1))
- then
- #cas ou le deuxième argument est plus ancien
- return 1
- else
- return 0
- fi
- }
- estPlusAncien $1 $2
- echo $?
- if [[ (($? == 1)) ]]
- then
- # si le deuxième argument est plus ancien, alors
- # on les inversent pour la suite du traitement
- echo "le chemin 1 est plus récent que le chemin 2, ils sont inverser pour la suite du traitement"
- compareRepertoire $2 $1
- else
- #compareRepertoire $1 $2
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement