Bash 콘솔에서 현재 입력된 인수를 반복하는 방법은 무엇입니까?

Bash 콘솔에서 현재 입력된 인수를 반복하는 방법은 무엇입니까?

저는 다음과 같이 입력합니다.

mv foo/bar/poit/zoid/narf.txt

갑자기 나는 그 매개변수의 대부분을 다시 입력해야 한다는 것을 깨달았습니다.

mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt

탭 완성을 하더라도 이는 상당히 고통스럽습니다. 마우스로 텍스트를 선택하고 마우스 가운데 버튼을 클릭하여 매개변수를 복사하여 붙여넣을 수 있다는 것을 알고 있지만 그것만으로는 충분하지 않습니다. 키보드에 손을 얹고 싶다.

키보드를 사용하여 해당 라인의 현재 매개변수를 복사하여 붙여넣는 방법이 있습니까?

답변1

히스토리 확장은 실제로 다음을 사용하여 현재 명령에서도 작동합니다.이벤트 표시기 !#. 이것을 비교하다단어 표시기마지막 매개변수의 경우 $방금 입력한 매개변수를 가져옵니다.

정규식을 모두 사용할 수 있습니다.수정자예를 들어, 원격 디렉토리에 있는 파일의 이름을 바꾸려면 다음을 입력하면 됩니다.

mv path/you/do/not/want/to/type/twice/oldname !#$:h/newname

답변2

미리 계획을 세웠다면 이용하겠습니다버팀대 확장. 이 경우:

mv foo/bar/poit/zoid/{narf,troz}.txt

readline기본 키보드 단축키를 사용하는 또 다른 방법 은 다음과 같습니다 .

  • mv foo/bar/poit/soid/narf.txt: 시작
  • Ctrl- w: unix-word-rubout삭제foo/bar/poit/soid/narf.txt
  • Ctrl- y, Space, Ctrl- y: yank, 공백, yank다시 가져오기mv foo/bar/poit/soid/narf.txt foo/bar/poit/soid/narf.txt
  • Meta- backspace, Meta- backspace: backward-kill-word마지막 항목을 두 번 삭제합니다.narf.txt
  • troz.txt: 다른 후행 부분을 입력하세요.

쉘을 사용하는 데 많은 시간을 보낸다면 bash기본 단축키 목록을 정기적으로 읽고 학습하고 일상 생활에 적용하는 데 유용할 것 같은 몇 가지를 선택하는 것이 좋습니다. bash매뉴얼 8장좋은 출발점입니다. 지름길을 알면 효율성이 크게 향상될 수 있습니다.

답변3

귀하의 예에 표시된 것처럼 다음 구성을 사용할 수 있습니다.

mv foo/bar/poit/zoid/{narf.txt,troz.txt}

심지어 (제안대로안스가 에스테르만):

mv foo/bar/poit/zoid/{narf,troz}.txt

긴 주소를 두 번 입력/복사하여 붙여넣는 대신.

답변4

조금 놀아 본 후 다음과 같이 작동했습니다.

mv foo/bar/poit/zoid/narf.txt

Enter
마지막 매개변수를 저장하려면 클릭하세요 .

이제 마지막으로 입력된 콘텐츠를 가져오는 데 사용됩니다. 공백을 입력하고 마지막으로 사용된 인수를 가져옵니다.

Alt+.

나는 오류를 던지는 것을 싫어하지만 이 사용 사례에서는 제대로 작동합니다.

관련 정보