[BASH] Comprobar si existe archivo, para evitar reemplazarlo

Iniciado por WaAYa HaCK, 22 Febrero 2012, 20:14 PM

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

WaAYa HaCK

Hola! Tengo una simple línea en un script que hace esto:
Código (bash) [Seleccionar]
#!/bin/sh
mencoder out.ogg -o video.avi -ovc lavc -oac mp3lame

Me gustaría que se guardara en el directorio del script, que compruebe si en el directorio de guardado ya existe el video.avi, que renombre el video.avi recién creado como video_1.avi o similar, y que lo mueva al directorio de guardado.

Supongo que será algo de ls y grep, pero no tengo ni idea...
¿Alguien me dice qué tengo que hacer?

Gracias!
La cacatúa yoyó es nueva en el zoo!

leogtz

Hice una pequeña función que calcula cómo hay que guardarse en el directorio "guardado"

Código (bash) [Seleccionar]
function getNextNameFile() {
[ -e "./guardado/video.avi" ] && {
valor=$(ls -1 guardado | grep -E "^video_[0-9]*.*$" | sed -s "s/^video_\([0-9]*\).*/\1/g" | tail -n1)
[ -z "$valor" ] && {
result=1
} || result=$((valor + 1))

} || result=0
}

getNextNameFile;
if [ $result = 0 ]
then
mencoder out.ogg -o guardado/video.avi -ovc lavc -oac mp3lame
else
mencoder out.ogg -o guardado/video_${result}.avi -ovc lavc -oac mp3lame
fi


Este script checa primero si en la carpeta de guardado existe "video.avi", si existe calcula el siguiente, es decir, video_n.avi, sino existe lo guarda como video.avi.

Saludos.
Código (perl) [Seleccionar]

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

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

WaAYa HaCK

La cacatúa yoyó es nueva en el zoo!

leogtz

Código (perl) [Seleccionar]

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

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