Script pour trier les fichiers d'une arborescence

Publié le par Levi59

Ce script va déplacer tout les fichiers d'une arborescence donnée vers des sous-dossiers d'une seconde arborescence (ou de la même si vous le souhaité) nommé selon leur type mime primaire (audio, video, text, application..). Il supprimera ensuite les dossiers vides de l'arborescence d'origine.

 

Attention tout de même, le script ne conservera pas l'arborescence d'origine donc si vous avez tout vos album bien rangés par chanteurs ou vos images par thèmes. Ne l'utilisez pas. Je ne pourrais en être tenu pour responsable.

 

#!/bin/bash
# script pour réorganiser une arborescence rapidement
#
# Copyright (C) 22 Jan. 2011, Rombeaut Rodolphe
# http://scriptam.over-blog.com/
# Released into the public domain.

ORIG="/répertoire à trier"
DEST="/répertoire de destination"

# ------------------------
# Partie à ne pas toucher
# ------------------------

ORIG=${ORIG%/}
DEST=${DEST%/}

find $ORIG/ -regextype "posix-extended" -depth -type f -regex ".*"  | while read fichier ; do
    a=$(file -ib "${fichier}")
    [ -d "$DEST/${a%%/*}" ] || mkdir -p "$DEST/${a%%/*}"
    mvfichier=${fichier##*/}
    [ "${fichier%/*}" != "$DEST/${a%%/*}" ] && {
    [ -f "$DEST/${a%%/*}/${mvfichier}" ] && {
        b=1
        while [ -f "$DEST/${a%%/*}/copie${b}___${mvfichier#*___}" ] ; do ((b++)) ; done
        mv "${fichier}" "$DEST/${a%%/*}/copie${b}___${mvfichier#*___}"
    } || mv "${fichier}" "$DEST/${a%%/*}/${mvfichier}"
    }
done
find $ORIG/ -type d -exec rmdir 2>/dev/null {} \;

exit

Publié dans Outils

Commenter cet article

Paco 25/03/2011 14:42


salut!

en fait, il fait quoi exactement ton script ? =)

si j'ai bien compris, il va mettre tous les mp3 dans un dossier, tous les jpeg dans un autre etc...
et les jpeg et les jpg seront mis dans le même dossier ? seront-ils dans le même dossier que les .gif et .png par exemple ?


Levi59 26/08/2011 15:26



il va trier tout simplement les fichiers en fonction de leur type mime (image, vidéo, ...)