![Bash에서 사용한 이전 명령의 마지막(n번째?) 전달된 인수를 어떻게 기억합니까?](https://linux55.com/image/48273/Bash%EC%97%90%EC%84%9C%20%EC%82%AC%EC%9A%A9%ED%95%9C%20%EC%9D%B4%EC%A0%84%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EB%A7%88%EC%A7%80%EB%A7%89(n%EB%B2%88%EC%A7%B8%3F)%20%EC%A0%84%EB%8B%AC%EB%90%9C%20%EC%9D%B8%EC%88%98%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EA%B8%B0%EC%96%B5%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
나는 종종 동일한 파일에 대해 다른 명령을 실행합니다. 예를 들어:
$ 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
. 이 기능이 활성화되면 뒤에 공백을 입력하면 !:2
Enter 키를 누르는 것을 기다리지 않고 즉시 해당 값으로 확장됩니다. 실수로 잘못된 인수를 포착하지 않도록 하세요.
답변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
상대적으로 느린 방법은 이전 명령을 호출하는 것입니다.↑이전 명령을 새 명령으로 바꿉니다.