- La ignorancia es la mayor de las cegueras, y creer que lo sabes todo la peor de las desgracias
- Es absurdo dividir a la gente en buena y mala. La gente es tan sólo encantadora o aburrida
- La definición de la locura es continuar haciendo la misma cosa, una y otra vez, y esperar resultados diferentes
- Sé que la única forma en la que puedo mostrar mi inteligencia al tratar con tontos es no mezclándome con ellos
lunes, 13 de junio de 2011
Fin de Temporada
TRABAJO FIN DE CURSO
Ahora sí que está editado con Bibliografía y echo en falta varias imágenes pero está escrito de mi puño y letra.
domingo, 12 de junio de 2011
Script 2nda parte
Total, que este es el resultado:
#!/bin/bash
#Crear un script que distribuya los documentos de la carpeta Descargas en
#subcarpetas. Para ello, el script ha de crear las carpetas, si no existen:
#"Documentos" "Presentaciones" "Imagentes" "Videos" y mover correctamente
#los diferentes archivos de Descargas dando la posibilidad interactiva de
# - no mover sino borrar para cada archivo
# - Si no reconoce el tipo de archivo, pregunta al usuario a que carpeta lo
# quiere mover
#Declaramos todas las variables de texto que usaremos para evitar repeticiones innecesarias
elec="(S)alir del programa, (D)escomprimir, (B)orrar, (N)o mover o (M)over a"
elec2="indique si quiere (B)orrar, (N)o mover, o mover a (D)ocumentos,(P)resentaciones,(I)magenes, o (V)ideos o (S)alir"
err="Valor incorrecto, introduzca S, B, M o N"
err2="Valor incorrecto, introduzca S, B, D, P, V, I o N"
sal="Saliendo del Programa de Distribución de Ficheros por tipo"
prog="Programa diseñado por Carlos Robles Mirantes y modificado por Rubén Glez."
mov="ha sido movido a la carpeta"
bor="Se ha borrado"
dej="No se hace nada con el fichero"
#Comprobamos si existen los directorios destino, de no ser así los creamos
if [ -d ~/Documentos ]; then
echo " "
else
cd ~
mkdir Documentos
echo " "
fi
if [ -d ~/Presentaciones ]; then
echo ""
else
cd ~
mkdir Presentaciones
echo " "
fi
if [ -d ~/Videos ]; then
echo ""
else
cd ~
mkdir ~/Videos
echo " "
fi
if [ -d ~/Imagenes ]; then
echo ""
else
cd ~
mkdir ~/Imagenes
echo " "
fi
#Declaramos la función que nos permitirá tener siempre en pantalla el mensaje de bienvenida
#Declaramos el comportamiento del script ante las distintas opciones que teclearemos
function opciones () {
opc="A"
until [ $opc = "M" -o $opc = "B" -o $opc = "S" -o $opc = "N" ]; do
tipifica
echo Se recomienda mover $fich a $tipo
echo ""
echo ""
echo ""
menu
echo -e $elec $tipo
read opc
if [ $opc = "M" ]; then
mover
echo $fich $mov $tipo
clear
elif [ $opc = "B" ]; then
rm -r $fich
echo $bor $fich
clear
elif [ $opc = "S" ]; then
clear
echo $sal
echo $prog
exit
elif [ $opc = "N" ]; then
echo $dej $fich
else
echo $err
fi
done
}
#Declaramos donde vamos a mover los archivos
function mover () {
if [ $doc1 -gt 0 -o $doc2 -gt 0 -o $doc3 -gt 0 -o $doc4 -gt 0 ]; then
mv $fich ~/$tipo
elif [ $img1 -gt 0 -o $img2 -gt 0 -o $img3 -gt 0 -o $img4 -gt 0 ]; then
mv $fich ~/$tipo
elif [ $vid1 -gt 0 -o $vid2 -gt 0 -o $vid3 -gt 0 ]; then
mv $fich ~/$tipo
elif [ $pre1 -gt 0 -o $pre2 -gt 0 -o $pre3 -gt 0 ]; then
mv $fich ~/$tipo
fi
}
#Tipificamos los archivos
function tipifica () {
if [ $doc1 -gt 0 -o $doc2 -gt 0 -o $doc3 -gt 0 -o $doc4 -gt 0 ]; then
tipo=Documentos
elif [ $img1 -gt 0 -o $img2 -gt 0 -o $img3 -gt 0 -o $img4 -gt 0 ]; then
tipo=Imagenes
elif [ $vid1 -gt 0 -o $vid2 -gt 0 -o $vid3 -gt 0 ]; then
tipo=Videos
elif [ $pre1 -gt 0 -o $pre2 -gt 0 -o $pre3 -gt 0 ]; then
tipo=Presentaciones
fi
}
#Pintamos el menú para los archivos reconocidos por el programa
function menu () {
echo "*********************************************************************************"
echo " (M)over $fich a $tipo "
echo " (N)o mover $fich "
echo " (B)orrar $fich "
echo " (S)alir del programa "
echo "*********************************************************************************"
}
#Pintamos el menú para los archivos que el programa no reconoce
function menu2 () {
echo "*********************************************************************************"
echo " (D) Para mover $fich a Documentos "
echo " (P) Para mover $fich a Presentaciones "
echo " (V) Para mover $fich a Videos "
echo " (I) Para mover $fich a Imagenes "
echo " (N) Para dejar $fich en el directorio actual "
echo " (S) Para salid de la aplicación "
echo "*********************************************************************************"
}
function menu3 () {
echo "*********************************************************************************"
echo " (D) Para descomprimir $fich Documentos "
echo " (P) Para descomprimir $fich Presentaciones "
echo " (V) Para descomprimir $fich Videos "
echo " (I) Para descomprimir $fich Imagenes "
echo " "
echo " (S) Para salir de la aplicación "
echo "*********************************************************************************"
}
#Comprobamos si existe la carpeta Descargas, de no ser así examinaremos el directorio actual
if [ -d ~/Escritorio/Descargas ]; then
cd ~/Escritorio/Descargas
echo El programa comprobará el directorio Descargas
else
echo El programa comprobará el directorio Actual
fi
#Comienza el bucle, indicamos al programa como va a tener que actuar con cada uno de los archivos del directorio en cuestión
for fich in *
do
#Declaramos las variables, que contendrán el número de archivos de cada tipo
doc1=`file $fich | cut -d: -f1 | grep -c '.doc$'`
doc2=`file $fich | cut -d: -f1 | grep -c '.docx$'`
doc3=`file $fich | cut -d: -f1 | grep -c '.pdf$'`
doc4=`file $fich | cut -d: -f1 | grep -c '.odt$'`
img1=`file $fich | cut -d: -f1 | grep -c '.jpg$'`
img2=`file $fich | cut -d: -f1 | grep -c '.jpeg$'`
img3=`file $fich | cut -d: -f1 | grep -c '.png$'`
img4=`file $fich | cut -d: -f1 | grep -c '.gif$'`
vid1=`file $fich | cut -d: -f1 | grep -c '.mpg$'`
vid2=`file $fich | cut -d: -f1 | grep -c '.wmv$'`
vid3=`file $fich | cut -d: -f1 | grep -c '.mpeg$'`
pre1=`file $fich | cut -d: -f1 | grep -c '.psx$'`
pre2=`file $fich | cut -d: -f1 | grep -c '.odp$'`
pre3=`file $fich | cut -d: -f1 | grep -c '.sti$'`
#Indicamos al script lo que tiene que hacer con cada tipo de archivo reconocido, es decir que tiene que hacer cuando las vari#ables sean mayores que 0
if [ $doc1 -gt 0 -o $doc2 -gt 0 -o $doc3 -gt 0 -o $doc4 -gt 0 ]; then
opciones
elif [ $img1 -gt 0 -o $img2 -gt 0 -o $img3 -gt 0 -o $img4 -gt 0 ]; then
opciones
elif [ $vid1 -gt 0 -o $vid2 -gt 0 -o $vid3 -gt 0 ]; then
opciones
elif [ $pre1 -gt 0 -o $pre2 -gt 0 -o $pre3 -gt 0 ]; then
opciones
else
#Indicamos al script lo que tiene que hacer con los ficheros que no reconoce
opc="A"
until [ $opc = "N" -o $opc = "D" -o $opc = "B" -o $opc = "P" -o $opc = "I" -o $opc = "V" -o $opc = "S" ]; do
echo no se reconoce el tipo de archivo de $fich
echo -e $elec2
echo ""
echo ""
echo ""
menu2
read opc
if [ $opc = "B" ]; then
rm -r $fich
echo $bor $fich
clear
elif [ $opc = "D" ]; then
mv $fich ~/Documentos
echo $fich $mov Documentos
clear
elif [ $opc = "I" ]; then
mv $fich ~/Imagenes
echo $fich $mov Imagenes
clear
elif [ $opc = "P" ]; then
mv ~/Presentaciones
echo $fich $mov Presentaciones
clear
elif [ $opc = "V" ]; then
mv $fich ~/Videos
echo $fich $mov Videos
clear
elif [ $opc = "S" ]; then
clear
echo $sal
echo $prog
exit
elif [ $opc = "N" ]; then
echo $dej $fich
clear
else
echo $err2
fi
done
fi
done
menu3
read opc
if [ $opc = "D" ]; then
tar -zcvf documentos.tar.gz /home/alumnot/Documentos
echo COMPRIMIDA LA CARPETA DOCUMENTOS
clear
elif [ $opc = "P" ]; then
tar -zcvf presentaciones.tar.gz /home/alumnot/Presentaciones
echo COMPRIMIDA CARPETA PRESENTACIONES
clear
elif [ $opc = "V" ]; then
tar -zcvf videos.tar.gz /home/alumnot/Videos
echo COMPRIMIDA LA CARPETA VIDEOS
clear
elif [ $opc = "I" ]; then
tar -zcvf imagenes.tar.gz /home/alumnot/Imagenes
echo COMPRIMIDA LA CARPETA IMAGENES
clear
elif [ $opc = "S" ]; then
clear
echo $sal
echo $prog
exit
fi
echo $sal
echo $prog