przekaż argumenty poprzedniego polecenia do bieżącego polecenia [duplikat]


1

To pytanie ma już odpowiedź tutaj:

Są chwile, kiedy chcę wziąć parametry poprzedniego polecenia i zastosować je do bieżącego polecenia.

Oto przykład

$ cat foo.txt
$ vim foo.txt

Chciałbym znaleźć skrót, aby nie musieć wpisywać vim foo.txt


3
To nie są argumenty , ale wynik , którego szukasz, ponieważ ~/foo.txtjest drukowany przez locate.
grawity

@grawity masz całkowitą rację. Zmodyfikowałem pytanie, ponieważ nie miało sensu, jak go zadałem.
spuder

Odpowiedzi:


4

Często używam polecenia Bash yank-last-arg, skrótu M-.lub Esc+ .. Spowoduje to skopiowanie ostatniego argumentu z poprzedniego wpisu historii do bieżącego wiersza w bieżącej pozycji, dzięki czemu można sprawdzić i edytować argument.


Plus 1 za esc.
spuder

1

Rozwiązaniem jest użyć !$

przykład:

vim !$

Aby pobrać ostatni parametr z ostatniego polecenia, użyj `! Foo: $, jak pokazano poniżej

cp foo bar
!cp:$ foobar
#This will copy foo to bar, and then bar to foobar

Możesz alternatywnie użyć następującej składni

cp foo bar
!!:$

http://www.thegeekstuff.com/2011/08/bash-history-expansion/


3
Uważaj, !$rozwija się tylko do ostatniego argumentu, nie wszystkie. I to nie odpowiada na twoje pytanie, jak stwierdzono - czy chcesz zastąpić komendę jak w vim "$(locate foo.txt)"?
slhck 17.07.13

Dzięki za zwrócenie na to uwagi. Ponieważ nie ma jeszcze odpowiedzi, wyjaśnię to pytanie.
spuder

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.