Bash에서 사용한 이전 명령의 마지막(n번째?) 전달된 인수를 어떻게 기억합니까?

Bash에서 사용한 이전 명령의 마지막(n번째?) 전달된 인수를 어떻게 기억합니까?

나는 종종 동일한 파일에 대해 다른 명령을 실행합니다. 예를 들어:

$ youtube-dl aB54c4p0eo #I made this video id up on the spot
$ mv aB54c4p0eo.flv kittens.flv
$ vlc kittens.flv
$ rm kittens.flv

다시 작성할 필요가 없도록 이전 명령의 매개변수를 현재 명령에서 재사용할 수 있는 방법이 있습니까?

답변1

alt-.물론 괜찮습니다. 그러나 원하는 번호가 매겨진 인수 (이전 명령의 번째 인수) 를 이미 알고 있다면 더 빠르게 진행할 수 있습니다 !:n.n

이것을 마법의 공간과 결합하는 것이 종종 도움이 됩니다. 이 기능을 활성화하려면 .inputrc 를 입력하세요 Space: magic-space. 이 기능이 활성화되면 뒤에 공백을 입력하면 !:2Enter 키를 누르는 것을 기다리지 않고 즉시 해당 값으로 확장됩니다. 실수로 잘못된 인수를 포착하지 않도록 하세요.

답변2

Bash에서는 단축키 Alt+ 를 사용할 수 있습니다 ..
한 번 클릭하면 마지막 매개변수가 제공됩니다. 더 클릭하면 최종 인수가 순환됩니다.

답변3

Bash에서 "이전 명령줄의 마지막 단어"에 대한 표시는 다음과 같습니다 !!$.

$ echo hello world
hello world
$ echo goodbye !!$
echo goodbye world # this is bash echoing actual cmd line before execution
goodbye world

"캐럿 구문"을 사용하여 바꿀 수도 있습니다.초기의명령줄의 일부입니다. 동일한 파일에서 여러 명령을 실행하려는 경우 편리합니다.

file file.dat
^file^ls -l^ #gives `ls -l file.dat`
^ls -l^stat # gives `stat file.dat`

더 많은 가능성이 있습니다. "역사 교체"를 참조하세요.bash(1) 매뉴얼 페이지더 알아보기.

답변4

상대적으로 느린 방법은 이전 명령을 호출하는 것입니다.이전 명령을 새 명령으로 바꿉니다.

관련 정보