Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/12/2007, à 13:05

fran66674

[Script Bash] aide tri extension-date

Bonjour a tous big_smile

Voila, je suis nouveau en bash et j'ai des soucis pour ecrire un script.
Je dois prendre tous les fichiers et sous-fichiers d'un repertoire de base pour les déplacer dans un autre repertoire. Un dossier est cree pour chaque type d'extension. Pour chaque repertoire de fichier d'extension, un dossier sera cree en fonction de l'annee de modification du fichier.

Pour resumer, les fichiers sont classés par extension puis par date.
Comme je vous l'ai dis, je debute en scripts bash, mais on m'ai dit que ce n'etait pas trop trop dur a faire big_smile. Il suffirai de bien utiliser la commande find, mais j'aurai besoin de votre aide.


Je vous remercie par avance de vos réponses

Hors ligne

#2 Le 09/12/2007, à 23:31

coca25

Re : [Script Bash] aide tri extension-date

#!/bin/bash

rep_dest=$1

ext=$(echo $2 | sed 's/.*\.\([^\.]\+$\)/\1/')
annee=$(stat -c %y $2 | grep -o '^....')
if [ ! -d $rep_dest/$ext/$annee -o ! -d $rep_dest/$ext/$annee ]; then
  echo création de $rep_dest/$ext/$annee
#  mkdir -p $rep_dest/$ext/$annee
fi
echo déplacement du fichier $2 vers $rep_dest/$ext/$annee
#  mv $2 $rep_dest/$ext/$annee

tu l'enregistres avec comme nom trier.sh par exemple, puis tu lui donnes le droit d'execution:

chmod +x trier.sh

puis tu lances:

find repertoire_source -type f -exec ./trier.sh repertoire_destination \{\} \;

j'ai laissé le "mkdir" et le "mv" en commentaires, tu testes et si ce qu'il te sort te convient, tu peux enlever les #

Dernière modification par coca25 (Le 09/12/2007, à 23:43)

Hors ligne

#3 Le 12/12/2007, à 09:23

fran66674

Re : [Script Bash] aide tri extension-date

Je te remercie beaucoup ^^
Je teste ca des que je peux et je te tiens au courant...

Hors ligne