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: