El 21/10/15 a las 12:45, fernando sainz escibió: > El día 20 de octubre de 2015, 16:35, listascor...@msjs.co > <listascor...@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,