[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Reemplazar enlaces por originales conservando el nombre del enlace



El 21/10/15 a las 12:45, fernando sainz escibió:
> El día 20 de octubre de 2015, 16:35, listascorreo@msjs.co
> <listascorreo@msjs.co> escribió:
>>
>> Hola lista...
>>
>> He creado una carpeta temporal en el terminal
>> dircarp=`mktemp -d`
>>
>> Tengo un archivo fc1 con una lista, estilo:
>> enlacearchivo --- archivoenlazado
>> enlacearchivo --- archivoenlazado
>> enlacearchivo --- archivoenlazado
>>
>> Tengo este guión:
>>
>> #!/bin/bash
>> cat /home/usuario/fc1 | while read i; do
>> awk '{ print $1, $3}'
>> archivocarpeta="cd $dircarp; ls"
>> archivocarpeta2=$archivocarpeta
>> cp $3 $dircarp
>> mv $archivocarpeta2 $1
>> done
>>
>> Al ejecutar sale este mensaje de error:
>> cp: falta un fichero como operando
>> Pruebe 'cp --help' para más información.
>> mv: el objetivo «ls» no es un directorio
>> 1
>>
>> Lo que quiero es que el guión lea el archivo fc1 linea por linea y que
>> al leer en cada linea ejecute lo siguiente:
>> -copia el archivoenlazado de la columna 3 y lo envía a la carpeta temporal
>> -mueve el archivoenlazado de la carpeta temporal a la ruta del enlacearchivo
>>
>> Con eso busco reemplazar todos los enlaces (enlacearchivo) por el
>> archivo original (archivoenlazado), conservando el nombre del enlacearchivo
>>
>> Saludos,
>>
>>
> 
> No se muy bien lo que quieres hacer, pero echa un vistazo a comandos como
> readlink, basename que te pueden ser útiles.
> 
> Por ejemplo, esto te busca todos los enlaces simbólicos del directorio
> actual y te pinta
> el nombre del enlace y el nombre del fichero enlazado con ruta y sin ruta.
> 
> ---------------
> for a in $(find .  -maxdepth 1 -lname "*");
> do
> 
>   # y aquí hacer lo que quieras, copiar, mover, etc...
>   LINK=$a;
>   echo $LINK;
> 
>   FICHERO=$(readlink $LINK);
>   echo $FICHERO
>   echo $(basename $FICHERO);
> 
> done
> ---------------------
> 
> Por cierto este tipo de preguntas hay que ponerlas como off-topic
> [OT] en el asunto.
> 
> S2.
> 

Leyendo de nuevo, es posible que haya cometido una breve equivocación y
de ser así pido disculpas.
Este tema genera una pequeña confusión mental que hay que saber
detectarla para poder entender el asunto... y trataré de desenredarla.

Los invito a que hagamos el siguiente ejercicio mental:

Tengo 2 ficheros:

nombre del fichero 1 (enlace): azul-claro
contenido del fichero 1: imagen azul clara

nombre del fichero 2: azul-celeste
contenido del fichero 2: imagen azul clara


El fichero azul-claro es un enlace al fichero azul-celeste

Quiero ¿desenlazar? el fichero azul-claro por el fichero azul-celeste
manteniendo el nombre del fichero azul-claro

Resultado:

nombre del fichero 1: azul-claro
contenido del fichero 1: imagen azul clara

nombre del fichero 2: azul-celeste
contenido del fichero 2: imagen azul clara


Nota: en el archivo ”fc1” es una lista, estructurada así:
enlace ----- destino-del-enlace
enlace ----- destino-del-enlace
enlace ----- destino-del-enlace
...

Espero haberles ilustrado el asunto.

 Saludos,


Reply to: