Vuelva a ejecutar varios comandos de historial


22

Imagine que acaba de ejecutar una docena de comandos. Decir...

$ cd foo/    # history cmd #10000 (my history is very long)
$ ... more commands ...
$ cd ../     # history cmd #10012 

Sé que puedo volver a ejecutarlos concatenados !-12 && !-11 && !-10 && (and so on) && !!si acaban de ejecutarse (poco probable) o !10000 && !10001 && !10002 && (and so on), pero ¿hay una manera más simple que escribir a mano cada número de historial con una explosión y símbolos?

¿Acaso hay algún tipo de rango que no conozco en bash?

Por ejemplo, !{10000-10012}# algo como esto, solo funciona.

Respuestas:


23

Para esto es el fccomando.

fc -12 -1

o

fc 10000 10012

Esto no es exactamente lo que desea, ya que lanzará primero un editor, pero probablemente sea algo bueno, ya que le da la oportunidad de verificar que tenga los comandos correctos e incluso editarlos usando todas las capacidades de su editor favorito. Una vez que guarde los cambios y salga del editor, se ejecutarán los comandos.


Ah hah! ¡Brillante! fc. Arreglar comandos. ¡Tiene sentido!
inanutshellus

1
Para evitar iniciar un editor (¡peligroso!), Puede usarfc -e true -12 -1
BingsF

no disponible en ubuntu
okwap

1
@okwap, sin sentido. Se especifica POSIX y ciertamente está disponible en Ubuntu. (Sin embargo, es un caparazón incorporado, como debe ser, por lo que si está buscando /binno lo encontrará.)
Comodín el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.