Aquesta és una revisió antiga del document
procesa.sh
#!/bin/bash # # VARIABLES GLOBALES # DIR_ORIGEN="/media/WD1-3TB-EXT4/__VIDEO/0.REVISAR" DIR_DESTINO="/media/WD1-3TB-EXT4/__VIDEO/1.DOWNLOADED" FICHERO_IGNORE=".ignore" # # FUNCIONES # function mirarCarpeta() { CARPETA=$1 if [ ! -e "$CARPETA/$FICHERO_IGNORE" ]; then mirarFicherosCarpeta "$CARPETA" else echo "Carpeta Ignorada: ${CARPETA##*/}" echo "+++" fi } function mirarFicherosCarpeta { CONTADOR=0 # si una carpeta contiene más de un fuchero de video, añadirle un numerador para evitar peder el fichero en el MV CARPETA=$1 NOMBRE_CARPETA=${CARPETA##*/} echo "$NOMBRE_CARPETA" # se podría usar for fichero in "$CARPETA"/.mkv "$CARPETA"/.avi ; do ??? for fichero in "$CARPETA"/* ; do NOMBRE_FICHERO=${fichero##*/} EXTENSION=${NOMBRE_FICHERO##*.} if [ "$EXTENSION" == "mkv" -o "$EXTENSION" == "avi" ]; then ORIGEN="$fichero" if [ $CONTADOR -eq 0 ]; then DESTINO="$DIR_DESTINO/$NOMBRE_CARPETA.$EXTENSION" else DESTINO="$DIR_DESTINO/$NOMBRE_CARPETA.$CONTADOR.$EXTENSION" fi echo -e "Origen: $ORIGEN\n" echo -e "Destino: $DESTINO\n" mv "$ORIGEN" "$DESTINO" # borrarCarpetaVacia "$CARPETA" fi CONTADOR=$((CONTADOR + 1)) echo "contador: $CONTADOR" done echo "+++" } function borrarCarpetaVacia { # esta función no se ejecuta # no he encontrado una manera de comprobar si un directorio está vacío # se utiliza un FIND al final del bucle de carpetas para eliminar las vacías CARPETA=$1 if [ -s "$CARPETA" ]; then echo "existe y no está vacío" else echo "no existe o está vacío?" fi } # # MAIN # for carpeta in $DIR_ORIGEN/* do if [ -d "$carpeta" ]; then mirarCarpeta "$carpeta" else echo "no directorio: $carpeta" fi done # elimina las carpetas vacías find "$DIR_ORIGEN" -mindepth 1 -type d -empty -delete