Advertisement
Guest User

Untitled

a guest
May 24th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. # !/bin/bash
  2.  
  3. # Programme principal prennant 2 repertoires en arguments (chemins)
  4.  
  5. # vérifie si le deux repertoires donnés en arguments ont
  6. # les mèmes entrées (noms) et vérifie si les fichiers avec
  7. # le mème nom ont le mème contenu
  8. # modifie le fichier comparaison quand il y a un changement
  9. function compareRepertoire
  10. {
  11. if [[ !(-d $1) || !(-d $2) ]]
  12. then
  13. # les arguments ne sont pas des repertoires
  14. return 2
  15. fi
  16.  
  17. # on parcours tout le 1er repertoire pour trouver les
  18. # entrées présente dans $1 mais pas dans $2
  19. for entree in $(ls $1)
  20. do
  21. find $2 -name $entree -print
  22.  
  23. # TODO si le fichier est trouvé, utilisé la fonction
  24. # compareFichier
  25.  
  26. # TODO si le fichier n'est pas trouvé ou que le contenu
  27. # n'est pas le mème, l'écrire dans le fichier comparaison
  28.  
  29.  
  30. # TODO Si on trouve un repertoire present dans
  31. # les deux arboresances comparées, alors on le parcours
  32. # pour comparer a nouveau
  33.  
  34. done
  35.  
  36. # on parcours tout le 2eme repertoire pour trouver les
  37. # entrées présente dans $2 mais pas dans $1
  38. for entree in $(ls $2)
  39. do
  40. find $1 -name $entree -print
  41.  
  42. # TODO si le fichier est trouvé, utilisé la fonction
  43. # compareFichier
  44.  
  45. # TODO si le fichier n'est pas trouvé ou que le contenu
  46. # n'est pas le mème, l'écrire dans le fichier comparaison
  47.  
  48. # TODO Si on trouve un repertoire present dans
  49. # les deux arboresances comparées, alors on le parcours
  50. # pour comparer a nouveau
  51.  
  52.  
  53. done
  54. }
  55.  
  56. function compareFichier
  57. {
  58. > resultat
  59.  
  60. cmp $1 $2 > resultat
  61. # le fichier resultat est toujours vide avant l'execution de cmp
  62. # la permission -s permet de vérifier que resultat a une taille
  63. # différente de 0 (quand il y a une différence entre les 2 entrées)
  64. if [[ -s resultat ]]
  65. then
  66. return 1
  67. # le programme appelant utilise le fichier resultat pour
  68. # connaitre l'emplacement des différences entre les fichiers
  69. else
  70. return 0
  71. fi
  72.  
  73. }
  74.  
  75. function estPlusAncien
  76. {
  77. # stat -c %Y donne une duree en seconde par rapport a l'epoch
  78. # (date initiale du système d'exploitation)
  79. a=$(stat -c %Y $1)
  80. b=$(stat -c %Y $2)
  81. set $a $b
  82.  
  83. if (($2 < $1))
  84. then
  85. #cas ou le deuxième argument est plus ancien
  86. return 1
  87. else
  88. return 0
  89. fi
  90. }
  91.  
  92. estPlusAncien $1 $2
  93. echo $?
  94. if [[ (($? == 1)) ]]
  95. then
  96. # si le deuxième argument est plus ancien, alors
  97. # on les inversent pour la suite du traitement
  98.  
  99. echo "le chemin 1 est plus récent que le chemin 2, ils sont inverser pour la suite du traitement"
  100. compareRepertoire $2 $1
  101. else
  102. #compareRepertoire $1 $2
  103. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement