Je suis régulièrement confronté a devoir faire des sauvegardes de disque dur qu’on vient me donner avec la consigne « peux tu me retrouver mes photos, viedeos etc… »
J’ai crée un script Bash permettant en renseignant un dossier source (qui sera le point de montage du disque dur) de rechercher le type de média que l’ont veut copier dans un dossier destination. Ce script ce nomme cp_media.sh et je l’ai mis à disposition sur Github
Ce script permet de faire une comparaison sur le nom de fichier ainsi que sa taille, si il tombe sur 2 fichiers avec le meme nom, il compare la taille, si les fichiers ont la même taille le nouveau fichier ne sera pas copié et présenté dans le rapport de en fin de process. Si la taille du fichier est différente le fichier sera renommé Filename.ext en Filename_c1.ext (c2, c3, c4…. pour les fichiers suivant avec le meme nom mais pas la meme taille)
Le script se base sur le fichier mime type se trouvant /etc/mime.type reprenant les extension de fichier en fonction de leur utilisation commune. `cat /etc/mime.type` vous donnera le contenue de ce fichier.
image/x-epson-erf erf
image/x-jg art
image/x-jng jng
image/x-nikon-nef nef
image/x-olympus-orf orf
image/x-portable-anymap pnm
image/x-portable-bitmap pbm
image/x-portable-graymap pgm
image/x-portable-pixmap ppm
image/x-rgb rgb
image/x-xbitmap xbm
image/x-xcf xcf
image/x-xpixmap xpm
image/x-xwindowdump xwd
en fonction du paramètre passé `–images|–videos`, je vais chercher l’extension du fichier à passer à la commande find avec les paramètre -iname *.jpg -o -iname *.png ...
Paramètres
- –source: renseigne le repertoire source ou se trouve les médias a copier
- –destination: renseigne le repertoire ou doit être copié les médias, si ce répertoire n’existe pas il sera crée.
- — images|–videos: selecteur permettant de choisir le type de média a copier. Si aucun paramètre est passé c’est image qui est utilisé.
- –size: Permet de renseigner la taille minimum a utiliser nous renseignerons la taille en kilo octet
ken méga octetMen Giga octetG(e.g--size +500kles fichiers faisant plus de 500 kilo octet) - –verbose: permet de montrer a l’écran tout ce qui se passe
Exemples
# Copie des images du repertoire home images vers le repertoire /var/tmp/Images
cp_media.sh --source ~/home/Images/ --destination /var/tmp/Images/ --images --size +100k --verbose







