one-liner para bash

Soleil

Es un poco tonto postear como trabajo un script de Bash de una linea, pero me ha sido tan útil, que ahí va.

Paso 1:
Editar el fichero /home/usuario/.bashrc y añadir:
cdf () { cd "$(dirname "$(locate "$1" | head -n 1)")" ; }

Paso 2:
Actualizar la base de datos de locate y recargar el bashrc.
sudo updatedb
source $HOME/.bashrc

¿ Para qué sirve ?
Si alguna vez has tenido que buscar un fichero e ir a su ruta sabrás que a veces es un engorro si la ruta es larga. "cdf" es un script de una linea que trata de mejorar eso uniendo los comandos 'locate' y 'cd' en uno.

Uso:
Buscar un fichero e ir automaticamente a la ruta donde se encuentra:
cdf fichero

Buscar una carpeta e ir automaticamente dentro de ella:
cdf carpeta/

"cdf" a secas nos lleva al raíz /.

Ejemplo:
cdf Incoming/
En mi caso nos lleva directamente a: /home/soleil/.aMule/Incoming

cdf rt2500
Nos lleva a /lib/modules/2.6.23-ARCH/kernel/drivers/net/wireless
(donde se encuentra el modulo rt2500.ko)

12 días después
erdanblo

Lo pruebo luego.

¿Pero no va lento al tener que ir haciendo las búsqueda?

9 días después
Soleil

No debería ir lento.
Es "updatedb" el que actualiza las búsquedas, "locate" es practicamente instantáneo.

S

Perdona, se me olvido hacerlo, lo deje en la lista de ToDo y se me paso :D

Solo comentar que para Debian hay que instalar aptitude install locate, que no viene por defecto, para poder hacer el updatedb

Una pena, porque lo mas probable es que en clase no tenga locate, y me hubiese venido muy bien este pequeño script.

:/

(Creo que no va del todo bien:

dani@dani-laptop:~$ cdf linux
dani@dani-laptop:/etc/ld.so.conf.d$ cdf Datos
dani@dani-laptop:/dev/disk/by-label$ 

¿Se me escapo algo?)

Soleil

Hola. : -)

  1. dani@dani-laptop:$ cdf linux
  2. dani@dani-laptop:/etc/ld.so.conf.d$ cdf Datos
  3. dani@dani-laptop:/dev/disk/by-label$

Comprueba la salida de "locate linux" y de "locate Datos", el primer resultado es a donde el comando cdf te lleva, de modo que debe haber algo en esas carpetas con esos nombres.

Usuarios habituales