¿Hay alguna manera en Bash para recordar el argumento del comando anterior?
Yo suelo hacer vi file.c
seguido de gcc file.c
.
¿Hay alguna manera en Bash para recordar el argumento del comando anterior?
¿Hay alguna manera en Bash para recordar el argumento del comando anterior?
Yo suelo hacer vi file.c
seguido de gcc file.c
.
¿Hay alguna manera en Bash para recordar el argumento del comando anterior?
Respuestas:
Puede usar $_
o !$
para recuperar el último argumento del comando anterior.
También Alt + .
se puede utilizar para recuperar el último argumento de cualquiera de los comandos anteriores.
!!:1
, !!:2
etc. ( !!:0
es el comando anterior mismo). Consulte gnu.org/software/bash/manual/bashref.html#History-Interaction
!$
, usas !^
para el primer argumento.
echo tiger rabbit
, ¿cómo puedo referirme tiger
al siguiente comando?
Alt + .
no funciona en modo vi. Solo para tu información, para otros que estaban confundidos aquí.
Si el comando anterior tenía dos argumentos, como este
ls a.txt b.txt
y querías el primero, podías escribir
!:1
dando
a.txt
O si quisieras ambos, podrías escribir
!:1-2
dando
a.txt b.txt
Puede extender esto a cualquier número de argumentos, por ejemplo:
!:10-12
-bash: :1-2: bad word specifier
ls a.txt
línea 2ll !:1-2
!:^-$
se puede usar o, por supuesto, un código similar en combinación con números.
!!: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 / incorporado / script) del comando anterior!!
- comando anterior (a menudo pronunciado "bang bang")!n
- número de comando n
dehistory
!pattern
- coincidencia de comandos más reciente pattern
!!:s/find/replace
- último comando, sustituir find
conreplace
!!:s/find/replace
, tú también puedes ^find^replace
.
!*
- todos los argumentos del comando anterior (después del programa / incorporado / script). por ejemplo: ls *.tmp *.cache rm !*
En la línea de comando puedes presionar esc- .o alt+.
Se desplaza por el último argumento de sus comandos anteriores.
↑
y ↓
para trabajar también.
Si conoce el número dado en el historial de un comando en particular, puede tomar cualquier argumento en ese comando usando los siguientes términos.
Use el siguiente para tomar el segundo argumento del tercer comando en la historia,
!3:2
Use el siguiente para tomar el tercer argumento del quinto último comando en la historia,
!-5:3
Usando un signo menos, le pide que atraviese desde el último comando del historial.
! * ejecuta un nuevo comando con todos los argumentos anteriores.
ls /tmp
cd !*
#you are now in /tmp
$_
.
Sí, puede usar !$
para recuperar el último argumento del comando anterior.