Etiqueta: sed

Cómo crear enlaces simbólicos en masa

GNU/Linux

Recientemente he instalado el paquete python3-csvkit en Fedora 24 y todos los comandos csv... terminan en -3 o -3.5.

P. ¿Cómo puedo lograr que los comandos terminen en su forma estándard, por ejemplo csvlook en lugar de csvlook-3, csvsort en lugar csvsort-3, ...?

R. Puedes crear los enlaces simbólico uno a uno por ejemplo:

$ sudo ln -s /usr/bin/csvlook-3.5 /usr/bin/csvlook

Pero podemos acelerar el proceso anterior creándolos en masa, para ello tecle el siguiente grupo de comandos en su consola.

$ for file in $(find  /usr/bin/ -name 'csv*3.5');do link=$(echo $file|sed -r 's/\-3\.5//');sudo ln -svf $file $link;done

Los comandos anteriores siguen la siguiene lógica:

1. El comando find busca en /usr/bin todo los ficheros que su nombre comienza con csv y termine con 3.5. (Puede ver Comando find – 25 ejemplos prácticos para más información sobre el comando find)

2. Para cada fichero encontrado el comando sed reemplaza la cadena 3.5 por vacío y el resultado se asigna a la variable link.

3. Por último se crea el enlace simbólico.

Lecturas recomendadas

- man find
- man sed
- man ln