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 |