¿Cómo puedo recordar el argumento del anterior comando bash?
¿Hay alguna manera en Bash de recordar el argumento del comando anterior?
Normalmente hago vi file.c
seguido de gcc file.c
.
¿Hay alguna manera en Bash de recordar el argumento del comando anterior?
7 answers
Puede usar $_
o !$
para recordar el último argumento del comando anterior.
También Alt + .
se puede usar para recordar el último argumento de cualquiera de los comandos anteriores.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-30 12:17:59
Si el comando anterior tenía dos argumentos, como este
ls a.txt b.txt
Y usted quería el primero, usted podría escribir
!:1
Dando
a.txt
O si quieres ambos, puedes escribir
!:1-2
Dando
a.txt b.txt
Puede extender esto a cualquier número de argumentos, por ejemplo:
!:10-12
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-30 13:10:33
En la línea de comandos, puede pulsar esc-. o alt+.
Recorre los argumentos anteriores que utilizó.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-19 17:31:22
!!:n
donde n
es la posición basada en 0 del argumento que desea.
Por ejemplo:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
El prefijo !
se usa para acceder a comandos anteriores.
Otros comandos útiles:
-
!$
- último argumento del comando anterior -
!^
- primer argumento (después del programa/built-in/script) del comando anterior -
!!
- comando anterior (a menudo pronunciado "bang bang") -
!n
- número de ordenn
desdehistory
-
!pattern
- coincidencia de comandos más recientepattern
-
!!:s/find/replace
- último comando, sustituirfind
porreplace
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-15 18:59:18
Si conoce el número dado en el historial para un comando en particular, puede tomar prácticamente cualquier argumento en ese comando usando los siguientes términos.
Use following para tomar el segundo argumento del tercer comando en la historia,
!3:2
Use following para tomar el tercer argumento del quinto último comando en la historia,
!-5:3
Usando un signo menos, le pides que atraviese desde el último comando de la historia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-23 17:51:06
Sí, puede usar !$
para recordar el último argumento del comando anterior.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-30 12:18:47
!* ejecuta un nuevo comando con todos los argumentos anteriores.
ls /tmp
cd !*
#you are now in /tmp
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-16 18:40:24