El 20/10/15 a las 18:22, listascor...@msjs.co escibió: > El 20/10/15 a las 11:41, Camaleón escibió: >> El Tue, 20 Oct 2015 09:35:31 -0500, 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 >> >> Pista: si ejecutas el script en modo de depuración (sh -x script.sh) vas >> viendo los valores que toman las variables, la ejecución de los comandos >> y su resultado... >> >>> 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 >> >> Lo que no pillo es por qué "copiar y mover", dos acciones sobre el mismo >> archivo cuando puedes hacerlo con una (copiar "archivoenlazado" a la ruta >> de "enlacearchivo") :-? >> >> #!/bin/bash >> f=/home/usuario/fc1 >> while read i; do >> var=$(echo "$i" | awk '{system("cp " $3 " "$1)}') >> done < "$f" >> > El guión no sirvió, sale este mensaje: > > cp: «/home/usuario/.icons/Numix/apps/24/system-file-manager.png» y > «/home/usuario/.icons/Numix/apps/24/nautilus.png» son el mismo fichero > > los enlaces siguen existiendo... y lo que busco es reemplazar todos los > enlaces (enlacearchivo) por el > archivo original (archivoenlazado), conservando el nombre del > enlacearchivo; es decir, que no me quede ningún enlace dentro del > directorio Numix. > > Saludos, > >>
Saludos Intenté con este otro y tampoco. #!/bin/bash dircarp="/home/usuario/w" cat /home/usuario/fc111 | while read i; do arch1=$(awk '{ print $1}') arch1a=$arch1 arch2=$(awk '{ print $3}') arch2a=$arch2 archivocarpeta="cd $dircarp; ls" archivocarpeta2=$archivocarpeta cp $arch2a $dircarp mv $archivocarpeta2 $arch2a done sale: cp: falta el fichero de destino después de «/home/usuario/w» Pruebe 'cp --help' para más información. mv: el objetivo «ls» no es un directorio 1