[Bash] Script para Organizar

Iniciado por panchocolate, 4 Abril 2011, 05:08 AM

0 Miembros y 1 Visitante están viendo este tema.

panchocolate

alguien sabe si existe la forma de organizar archivos en linux con un script?

por ejemplo que tenga una cancion en un folder y la mande automaticamente a la carpeta de musica o una imagien y la mande a la carpeta de imagenes?

o algun script para extraer archivos de un .rar o .zip?

leogtz

Claro que se puede, pero detalla un poco más que es lo que quieres.

rar x file.rar
unzip file.zip
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

panchocolate

#2
es que voy a subir archivos, algunos en .zip o .rar y los demas en .mp3, jpg lo comun

mediante webmin los voy  a suvir a una carpeta y lo que ocupo es que cuando los envien los acomode o descomprima automaticamente, el script y su ejecucion lo puedo acomodar con el webmin

nada mas no tengo el script que haga eso  :o


encontre este codigo
Código (bash) [Seleccionar]
#!/bin/bash
#
#
#

################################################
#
# Functions
#
################################################

DIR=$(pwd)


Music()
{
if [ -e "$DIR/Music" ];then
      echo -n ""
else
      mkdir Music
fi

mv *.mp3 "$DIR/Music" 2>/dev/null
mv *.wav "$DIR/Music" 2>/dev/null
mv *.midi "$DIR/Music" 2>/dev/null
}

Movies()
{
if [ -e "$DIR/Movies" ];then
      echo -n ""
else
      mkdir Movies
fi

mv *.avi "$DIR/Movies" 2>/dev/null
mv *.mpeg "$DIR/Movies" 2>/dev/null
mv *.mpg "$DIR/Movies" 2>/dev/null
}


Pictures()
{
if [ -e "$DIR/Pictures" ];then
      echo -n ""
else
      mkdir Pictures
fi

mv *.jpeg "$DIR/Pictures" 2>/dev/null
mv *.jpg "$DIR/Pictures" 2>/dev/null
mv *.gif "$DIR/Pictures" 2>/dev/null
mv *.png "$DIR/Pictures" 2>/dev/null
}

Compressed()
{
if [ -e "$DIR/Compressed" ];then
      echo -n ""
else
      mkdir Compressed
fi

mv *.zip "$DIR/Compressed" 2>/dev/null
mv *.rar "$DIR/Compressed" 2>/dev/null
mv *.7z "$DIR/Compressed" 2>/dev/null
mv *.tar "$DIR/Compressed" 2>/dev/null
mv *.tar.bz2 "$DIR/Compressed" 2>/dev/null
mv *.tar.gz "$DIR/Compressed" 2>/dev/null
}


################################################
#
# Main Program
#
################################################

Music
Movies
Pictures
Compressed


pero no hace nada, creo que hace las carpetas en lugar de utilizar las que ya tiene el sistema, entonces como le haria para mover archivos de por ejemplo, musica a la carpeta musica?

leogtz

#3
Bueno, lo haré a mi manera, bueno, dame algunos minutos para hacerlo.

¿El script en qué directorio checará que dichos archivos estén?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

panchocolate

en el que sea pero psss "/" en la raiz del sistema

leogtz

Prueba esto:
Código (bash) [Seleccionar]
#!/bin/bash
if [ ! -d "./Music" ]
then
mkdir "./Music";
mv *.mp3 *.wav *.midi &> /dev/null
else
mv *.mp3 *.wav *.midi &> /dev/null
fi

if [ ! -d "./Movies" ]
then
mkdir "./Movies";
mv *.avi *.mpeg *.mpg ./Movies &> /dev/null
else
mv *.avi *.mpeg *.mpg &> ./Movies /dev/null
fi

if [ ! -d "./Pictures" ]
then
mkdir "./Pictures";
mv *.jpeg *.jpg *.gif *.png ./Pictures &> /dev/null
else
mv *.jpeg *.jpg *.gif *.png ./Pictures &> /dev/null
fi

if [ ! -d "./Compressed" ]
then
mkdir "./Compressed"
mv *.zip *.rar *.7z *.tar *.tar.bz2 *.tar.gz ./Compressed &> /dev/null
else
mv *.zip *.rar *.7z *.tar *.tar.bz2 *.tar.gz ./Compressed &> /dev/null
fi
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

panchocolate

solo muebe las imagenes, lo demas nop

me sale esto:


root@server2 Downloads]# ./script2.sh
./script2.sh: line 8: ./Music: Is a directory
./script2.sh: line 16: ./Movies: Is a directory