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