linux:scripts:procesa

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
  • linux/scripts/procesa.1448494821.txt.gz
  • Darrera modificació: 25/11/2015 15:40
  • per mate