Aquesta és una revisió antiga del document
history expansion
| shortcut | descripción | |||
|---|---|---|---|---|
| eventos | ||||
| ! | Indica que empieza la sustitución | |||
| !! | Último comando | |||
| !n | enésimo comando | |||
| !-n | ultimo comando menos n | |||
| !string | el comando más reciente que empiece por string | |||
| !?string? | el comando más reciente que contenga string | |||
| string1 | string2 | repite el último comando cambiando string1 por string2 | ||
| !# | ||||
| palabras - siguen a un evento, separado por : | ||||
| 0 | la primera palabra de la linea, usualmente un comando | |||
| n | la enésima palabra de una linea | |||
| el primer argument - la segunda palabra | ||||
| $ | el último argumento de una linea | |||
| % | la palabra que cuadra con la búsqueda ?string? más reciente | |||
| * | todos los argumentos | |||
| x* | equivalente a x-$ | |||
| x- | ? | |||
| modificaciones - siguen a una palabra, separados por : | ||||
| h | quita el path del final | |||
| t | quita el path del principio | |||
| r | quita la extensión de un archivo del estilo .xxx, dejando el nombre del archivo | |||
| e | lo quita todo excepto la extensión | |||
| p | imprime el comando resultantte sin ejecutarlo | |||
| q | entrecomilla las palabras cambiadas, escapandolas | |||
| x | entrecomilla las palabras cambiadas, separando las palabras con espacio y salto de linea | |||
| s/old/new/ | cambia OLD por NEW | |||
| & | repite la anterior sustitución | |||
| g | hace que s se aplique a toda la linea | |||
Ejemplos:
$ echo a b c d e a b c d e
$ echo !!:3-$ c d e
$ echo !-2:*:q a b c d e -> ejecuta un echo 'a b c d e'
$ echo !-3:1:2:4:x a b d -> ejecyta un echo 'a' 'b' 'd'
$ echo !-4:1-3:s/a/foo/:s/b/bar/:s/c/baz/ foo bar baz
$ tar -xzf paquete.tar $ cd !-1:$:r -> ejecuta cd paquete
$ ls -a /tmp $ ^-a^-l^ -> ejecuta ls -l /tmp