Mailinglist Archive: opensuse-es (2236 mails)

< Previous Next >
Re: [opensuse-es] Mi directorio en varios DVDs con k3b - script duplicar
  • From: "Carlos E. R." <robin.listas@xxxxxxxxxxxxxx>
  • Date: Mon, 15 Jan 2007 02:11:28 +0100 (CET)
  • Message-id: <Pine.LNX.4.64.0701150141530.5020@xxxxxxxxxxxxxxxx>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


El 2007-01-14 a las 18:18 +0100, Harmless escribió:

> > Bueno, si despues después de la siesta, del paseo, del cine, de las copas
> > y todo eso me quedan ganas, me pongo :-p
>
> JAJAJAJAJA
>
> Ha sido bueno lo del premio, pero estoy seguro que tendría el primer premio
> (por descontado)

Bueno, pues ya tengo uno, y con un bug conocido: falla en los nombres de
ficheros y directorios con espacios, no los hace. Tengo una solución para
eso con un programita en pascal que los "escapa", pero igual alguien
conoce otra manera "tipo script" o más correcta (el origen del error lo
indico abajo):


#!/bin/bash

ORIGEN=/home/cer/tmp
DESTINO=/home/cer/tmp.lnk

function CreateSLink()
{
# target name
if ! test -L "$2" ; then
ln "$1" "$2" #> /dev/null
echo "$1" "-->" "$2"
fi
}


function CreateHLink() # ¡¡Recursiva!!
{
# target name
if ! test -f "$2" ; then
ln "$1" "$2" # > /dev/null
echo "$1" "-->" "$2"
fi
}

function CreateDir()
{
if ! test -d "$1" ; then
mkdir "$1" # > /dev/null
echo "Mk: ""$1"
fi
}

function UnNivel()
{
local IFILE=$1
local OFILE=$2
local FILE_L1="A"

for FILE_L1 in $( ls $IFILE )
do
# Es un archivo
if test -f "$IFILE/$FILE_L1" ; then
CreateHLink "$IFILE/$FILE_L1" "$OFILE/$FILE_L1" # enlazar fichero
fi
# Es un directorio
if test -d "$IFILE/$FILE_L1" ; then
CreateDir "$OFILE"/"$FILE_L1" # crear directorio
UnNivel "$IFILE/$FILE_L1" "$OFILE"/"$FILE_L1" # Recorrer el siguiente nivel
fi
done
}

CreateDir $DESTINO
UnNivel $ORIGEN $DESTINO

# Bugs: falla si el nombre del directorio contiene espacios, no lo crea.
# La culpa es de la linea:
# for FILE_L1 in $( ls $IFILE )
# devuelve varias palabras por fichero cuando tiene espacios.
#Se ve con esta modificación:
# do
# echo "-"$FILE_L1"-"



- --
Saludos
Carlos E. R.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Made with pgp4pine 1.76

iD8DBQFFqtTStTMYHG2NR9URAtRAAJ9n0WNF5/4YTEYDPhf+rBfsxEUi2QCdG7xe
3qFbED6cx2o3Bss6MhMgRAQ=
=I8oA
-----END PGP SIGNATURE-----
< Previous Next >
Follow Ups