Reutilizar texto en un comando bash

13

Si estoy escribiendo un comando largo o simplemente escribiendo una ruta de archivo extensa, ¿hay alguna que pueda "reutilizar" con algún atajo de comando?

p.ej:

1)cp /home/myuser/really/big/file/here/and/there.png /home/myuser/really/big/file/here/and/there.png.bkp

¿Realmente tengo que escribirlo de nuevo?

Pescador
fuente

Respuestas:

14

Usar expansión de llaves

cp /home/myuser/really/big/file/here/and/there.png{,.bkp}
bbaja42
fuente
1
+1 y puedes ir aún más corto:cp /home/myuser/really/big/file/here/and/there.{,.bkp}
Mike Fitzpatrick
@peth: Vaya, sí, tienes razón. Así que podemos ir aún más cortos: cp /home/myuser/really/big/file/here/and/there{,.bkp}:)
Mike Fitzpatrick
4

Además, la expansión de la historia puede funcionar aquí:

cp /home/myuser/really/big/file/here/and/there.png !#:1.bkp

donde la !#:1parte se refiere al primer argumento del comando que está escribiendo actualmente.

Glenn Jackman
fuente
1

Puede ahorrar mucho tiempo escribiendo eso utilizando la expansión de pestañas, el acceso directo tilde y el historial de comandos.

Por ejemplo,

~/r[tab]/b[tab]/f[tab]/h[tab]/a[tab]/t[tab]/

(donde [tab] significa "presione la tecla Tab") se expandiría a

/home/myuser/really/big/file/here/and/there

También podrías escribir

cp /home/myuser/really/big/file/here/and/there.png /some/destination

luego presione la flecha hacia arriba y simplemente cambie las últimas tres letras del nombre del archivo

CarlF
fuente