[EMAIL PROTECTED] wrote:
> ...
>       la pregunta en verdad es esta:
> 
>       quiero hacer un script que me cambie los nombres de estos
>       ficheros/directorios
>       que contienen espacios en blanco...
> 
>       hago esto que funciona...
> 
>       IFS="" ; for i in `ls -R` ; do q=`echo $i | sed s/' '/_/g` ; echo $i
>       ; done
> ...
No te creo :)
el nombre de un archivo con blancos que resulta de ls -R
es interpretado dentro de la lista del for como varios elementos
de la lista.
Distinto ser�a si haces un

for i in *
�
for i in */*

en tal caso cada archivo es un elemento de la lista del for y
hay alguna chance de que la cosa funcione.

Para conseguir hacer la operaci�n en un �rbol de directorios
lo �nico que se me ocurre es hacer un find:

find . -name '*' -exec ./reno \{\} \;

donde ./reno es un peque�o script:
#! /bin/bash
q=$(echo $1 | sed s/' '/_/g)
mv "$1" $q

Esto funciona +o-:
-Se queja de que est�s tratando de renombrar de un archivo
al mismo (en los casos en que no tienen espacio en el nombre).
-Si un directorio tiene un espacio en el nombre primero lo
renombra y luego intenta renombrar los archivos que contiene.
Y como el directorio esta cambiado ya no encuentra los archivos
con el viejo nombre. Se arregla ejecutando de nuevo el comando.

Intent� hacerlo todo en una l�nea pero no me sali�: no consegu�
que cada caracter especial sea interpretado por quien corresponde:
{ } y ; por find, algunas comillas por bash, el | por no se qui�n...

-- 
Saludos,
                                                     O__
Enzo.                                                ,>/
____________________________________________________()_\()____
Enzo A. Dari  |  Instituto Balseiro / Centro Atomico Bariloche
8400-S. C. de Bariloche, Argentina | [EMAIL PROTECTED]
Phone: 54-2944-445208, 54-2944-445100 Fax: 54-2944-445299
Web page: http://cabmec1.cnea.gov.ar/darie/darie.htm

Responder a