voici la première version de mon script
Ca dépend aussi du bureau utilisé, personnellement j’utilise rox-filer
clic droit sur le dossier que je veux copier -> monscript -> je choisis la destination -> la copie se fait
sinon en console $ monscript dossier_à_copier
une fenêtre apparaît pour me dire que c’est fini.
Je l’ai testé sur quelques dossiers et je les ai dans l’ordre.
à tester quand même car je redoute des bugs (accents, espaces etc…)
[code]#!/bin/sh
mount="/media/usbdisk" # à changer éventuellement
dosini=$1 # pour dossier initial
if [ $(expr “$dosini” : “(.)”) != “/” ]; then dosini="$PWD/$dosini" ; fi # si le 1° caractère n’est pas / on met le lien relatif en lien absolu
if [ ${dosini: -1} = “/” ]; then # si le dernier caractère est / (ce n’est pas le cas quand je clic droit avec rox)
dosini="$(expr “$dosini” : “(.)/")" # on enlève le dernier /
fi
nom="$(expr “$dosini” : "./(.*)”)" #on ne garde que le nom du dossier
if [ ! -r $mount ] # si le lecteur n’est pas monté
then
zenity --info --text “il faut avant monter le lecteur” --timeout=4
exit
fi
cd $mount/
#on demande ou il faut copier la musique
dosfin=$(zenity --file-selection --directory --filename=Music --title=“Sélectionnez un fichier pour copier le dossier” )
case $? in
0)
echo “”$dosfin" est sélectionné." ;;
1)
exit ;;
-1)
exit ;;
esac
#On synchronise les dossiers ATTENTION à l’option --delete-before
rsync --verbose --recursive --times --whole-file --delay-updates --include “/" --include ".mp3” --include “.ogg" --include ".flac” --include “.jpg" --include ".png” --include “.lrc" --exclude "” --modify-window=1 --delete-before “$dosini/” “$dosfin/$nom/” | zenity --progress --text=“copie des fichiers en cours…” --pulsate --auto-close
#On réduit la taille de la couverture avec convert (du paquet image magick) à voir si cela convient
find “$dosfin/$nom/” ( -name “.jpg" -o -name ".png” ) -exec convert -size 200x200 -resize 200x200 +profile “*” {} {} ;
on converti les tag de utf8 en latin1, on enlève les tag v1, à vérifer si cela fonctionne tout le temps
find “$dosfin/$nom/” ( -name “.mp3" -o -name ".ogg” -o -name “*.flac” ) -exec eyeD3 --set-encoding=latin1 --to-v2.4 --remove-comments --force-update {} ; | zenity --progress --text=“changement des tags en cours…” --pulsate --auto-close
zenity --info --text “copie terminée” --timeout=5[/code]edit: correction bug