Etiqueta: find

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

Comando find - 25 ejemplos prácticos

GNU/Linux
find es un utilitario que permite realizar búsqueda de ficheros (fichero regular, directorio,
enlace simbólico, ...) a través de una jerarquía de directorios, es poderoso y rico en funcionalidades.

Manipular ficheros con nombres con espacios en blanco

Si queremos manipular ficheros cuyos nombres contienen espacios en blanco debemos combinar los comandos find, while y read, por ejemplos si queremos tener

Ocultar varios ficheros en una sola operación

Para ocultar todos los ficheros txt que se encuentran debajo de /home/pepe/personal bastaría con teclear en el interprete de comandos

Ejemplo práctico de los comandos find, xargs y chmod

chmod no permite cambiar los permisos a todos los directorios, en una sola línea de comando, sin afectar los permisos de los ficheros y viceversa. ¿Cómo puedo lograr esto?