blinkz

branlemoi

Sep 25th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.34 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. # On demande à l'utilisateur l'emplacement du dossier source et destination
  4.  
  5. read -e -p "Chemin du dossier contenant les fichiers à sauvegarder :" dossier_source
  6. read -e -p "Chemin du dossier de destination :" dossier_destination
  7.  
  8. # On demande à l'utilisateur d'indiquer le jour/mois/année de la sauvegarde
  9.  
  10. echo -n "Jour"
  11. read jour
  12. echo -n "Mois"
  13. read mois
  14. echo -n "Année"
  15. read annee
  16.  
  17. #On récupere la date pour l'afficher au format aaaa-mm-jj
  18. date_aammjj="$annee""-""$mois""-""$jour"
  19.  
  20. #On bascule le format aaaa-mm-jj en secondes
  21. date_secondes=`date --date="$date_aammjj" "+%s"`
  22.  
  23. dossier_destination=${dossier_destination%?}
  24.  
  25. #On récupère chaque fichier du dossier avec son chemin complet sous forme de ligne
  26.  
  27. for line in `find $dossier_source -type f`
  28. do
  29.  
  30. #On vérifie la version du fichier pour pouvoir la comparer
  31.  
  32.         fichier=`date --reference="$line" +%s`
  33.  
  34. #On compare les 2 versions de fichiers
  35.  
  36.         if [ "$fichier" -lt "$date_secondes" ]
  37.         then
  38.                 echo "$fichier $date_secondes"
  39.                 chemin_fichier=`dirname $line`
  40.                 echo "$chemin_fichier"
  41.                 dir="$dossier_destination""$chemin_fichier"
  42.                 dest="$dossier_destination""$line"
  43.                 mkdir -p "$dir"
  44.         cp -u -v --preserve=all "$line" "$dest"
  45.         fi
  46. done
Advertisement
Add Comment
Please, Sign In to add comment