He añadido unas modificaciones al script que nos permite organizar las descargas del Escritorio de manera automatica, copiando los archivos que indiquemos a los directorios que indiquemos. Lo ideal seria crear una interface GUI con Python pero lo dejare para mejor ocasión. Aqui el script (organiza.sh):
#!/bin/bash
#--------------------------------------------------------------------
# organiza.sh
#--------------------------------------------------------------------
# Pequeño script para organizar las descargas.
#
# Examina los archivos por su extension y los mueve a las carpetas
# destino que se le indiquen.
#--------------------------------------------------------------------
# Lenguaje (reservado para uso futuro, para poner los textos de acuerdo al lenguaje)
LENGUAJE=$LANG
# Cada 2 minutos (reservado para uso futuro y cron)
TIEMPO_MINUTOS=2
# Renombrar o sobreescribir si existe el fichero destino
RENOMBRAR_SI_EXISTE="si"
# Carpeta Fecha
FECHA=`date +"%d%b"`
# Colores
Black="0;30"
DarkGray="1;30"
Blue="0;34"
LightBlue="1;34"
Green="0;32"
LightGreen="1;32"
Cyan="0;36"
LightCyan="1;36"
Red="0;31"
LightRed="1;31"
Purple="0;35"
LightPurple="1;35"
Brown="0;33"
Yellow="1;33"
LightGray="0;37"
White="1;37"
#-------------------------------------
# color()
# Imprime un texto de color
# @param texto del mensaje
# @param color del texto
#-------------------------------------
color()
{
mensaje="${1}"
color="${2}"
echo -e "\e[${color}m${mensaje}\e[00m"
}
bold()
{
echo -e "\033[1m${1}\033[0m"
}
#---------------------------------
#---------------------------------
# mover()
# Mueve los archivos de origen a destino segun la extension
# @param directorio origen de busqueda
# @param directorio destino donde mover
# @param extension del archivo a mover
#---------------------------------
mover()
{
origen="$1"
destino="$2"
archivos="$3"
bold "=========================================================================================================================="
bold " Moviendo archivos [$archivos] desde [$origen] hasta [$destino] "
bold "=========================================================================================================================="
# Comprobamos si existe el directorio destino, si no existe, lo creamos
if [ ! -d "$destino" ];
then
echo "El directorio destino [$destino] no existe. Creandolo..."
mkdir "$destino"
echo "directorio creado."
fi;
# Recorrer cada uno de los archivos origen
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for archivo in `ls $origen/$archivos`
do
echo "Encontrado $archivo..."
# Comprobamos si el archivo ya existe en el destino, si ya existe se mueve pero con otro nombre para no borrar el original
# para ello le concateno _timestamp
TIMESTAMP=`date +%s`
# Me quedo con solo el nombre del archivo
nombre=`basename "$archivo"`
# chequeo si existe en destino
if [ -f "$destino/$nombre" ];
then
color "El archivo ya existe, se renombra con el timestamp..." $DarkGray
nombre2="${TIMESTAMP}_${nombre}"
#echo $nombre
color "* Moviendo archivo [$nombre] a [$destino/$nombre2]..." $DarkGray
mv "$origen/$nombre" "$destino/$nombre2"
else
color "Moviendo archivo [$nombre] a [$destino/$nombre]..." $DarkGray
mv "$origen/$nombre" "$destino/$nombre"
fi;
done
IFS=$SAVEIFS
}
#================================================================================
# REGLAS PARA MOVER LOS ARCHIVOS, cambia esto como corresponda segun tu caso.
#================================================================================
# Sintaxis: mover "directorio_origen" "directorio_destino" "extension archivos"
#================================================================================
#=====Imagenes=========
mover "$HOME/Escritorio" "$HOME/Imágenes/$FECHA" "*.gif"
mover "$HOME/Escritorio" "$HOME/Imágenes/$FECHA" "*.jpg"
mover "$HOME/Escritorio" "$HOME/Imágenes/$FECHA" "*.jpeg"
mover "$HOME/Escritorio" "$HOME/Imágenes/$FECHA" "*.png"
#====Descargas=========
mover "$HOME/Escritorio" "$HOME/Descargas/$FECHA" "*.deb"
mover "$HOME/Escritorio" "$HOME/Descargas/$FECHA" "*.zip"
mover "$HOME/Escritorio" "$HOME/Descargas/$FECHA" "*.tar.gz"
mover "$HOME/Escritorio" "$HOME/Descargas/$FECHA" "*.7z"
mover "$HOME/Escritorio" "$HOME/Descargas/$FECHA" "*.rar"
mover "$HOME/Escritorio" "$HOME/Descargas/$FECHA" "*.gz"
#====Documentos=========
mover "$HOME/Escritorio" "$HOME/Documentos/$FECHA" "*.html"
mover "$HOME/Escritorio" "$HOME/Documentos/$FECHA" "*.js"
mover "$HOME/Escritorio" "$HOME/Documentos/$FECHA" "*.pdf"
#
# Si se quiere añadir al crontab para ejecutar cada 2 minutos
#
# crontab -e
# */2 * * * * /usr/bin/organiza.sh
#
# otra opcion es dejarlo en $HOME/.gnome2/nautilus-scripts como "Organizar Escritorio"
#
# Pendiente escribir un interface Python para crear las reglas y ejecutar desde el Panel.
#
exit;
Instalacion:
Varias formas:
* Crear un lanzador del escritorio que apunte al script y añadirlo al panel.
* Dejarlo como antes ejecutandose cada “x” tiempo mediante cron.
* O la que me gusta a mi ahora, copiarlo a $HOME/.gnome2/nautilus-scripts con el nombre “Organizar Escritorio”, asi que cuando quieras mover los archivos basta con seleccionarlo desde Scripts > Organizar Escritorio.
Configuración:
Yo dejo todas las descargas en el Escritorio, que puede no ser vuestro caso, asi que debeis editar el archivo y cambiar la parte última del mismo, justo donde dice:
#=================================================
# REGLAS PARA MOVER LOS ARCHIVOS, cambia esto como corresponda segun tu caso.
#======================================================
# Sintaxis: mover "directorio_origen" "directorio_destino" "extension archivos"
#======================================================
#=====Imagenes=========
mover "$HOME/Escritorio" "$HOME/Imágenes/$FECHA" "*.gif"
Aqui p.ej la regla lo que haria es mover los archivos *.gif desde el Escritorio hasta la carpeta $HOME/Imágenes/18Sep
$FECHA es una variable que va almacenando la fecha actual, asi me permite ir clasificando los ficheros de manera temporal.
Pero podrias poner tus propias reglas, p.ej:
mover "/tmp" "$HOME/Descargas/PDF" "*.pdf"
que moveria todos los archivos /tmp/*.pdf hasta la carpeta “PDF” de Descargas.
Comentarios recientes