!$
se expande a la última palabra de su comando anterior.
Así que podrías hacer:
cat foo/is/a/very/long/path/to/bar.c
rm !$
o:
git diff foo/bar.c
git checkout !$
Tus ejemplos solo repetían la última palabra, así que !$
funcionó bien Si realmente tuviera muchos argumentos que quisiera repetir y solo quisiera cambiar la primera palabra, podría usar !*
, que se expande a todas las palabras del comando anterior excepto el cero.
Consulte la sección "EXPANSIÓN DEL HISTORIAL" del bash
página de manual Hay mucha flexibilidad allí.
Ctrl +a para ir al principio de la línea, luego Alt +d para eliminar la primera palabra.
No estoy seguro de si sería más rápido o no, pero vea este artículo, particularmente el punto #.3:
- Reemplace una cadena del comando anterior usando ^str1^str2^
En el siguiente ejemplo, primero ejecutamos el comando ls para verificar un archivo. Más tarde nos dimos cuenta de que queríamos ver el contenido del archivo. En lugar de escribir el nombre completo del archivo nuevamente, podemos simplemente reemplazar “ls” en el comando anterior con “cat” como se muestra a continuación.
$ ls /etc/cron.daily/logrotate
$ ^ls^cat^
cat /etc/cron.daily/logrotate