내가 집에 있고 ~/blob
파일이 있는 경우~/blob/a_long_directory_name/c/x.x
나는 타자를 칠 수 있어요
mv blob/a_long_directory_name/c/x.x blob/a_long_directory_name/even_more/y.y
첫 번째 매개변수의 디렉터리 경로(현재 디렉터리는 아님)를 사용하여 더 짧은 내용을 입력할 수 있는 바로가기가 있습니까?
mv blob/a_long_directory_name/c/x.x $same_dir/y.y
이와 같은 내용은 $same_dir
매개변수 1의 디렉터리를 가리킵니다.
답변1
bash를 통해 사용할 수 있습니다버팀대 확장
mv blob/a_long_directory_name/{c/x.x,evenmore/y.y}
답변2
타이핑의 양을 최소화하기 위한 가장 쉬운 방법은 아마도 두 단계로 수행하는 것입니다. CD를 해당 디렉토리로 복사한 다음 이동하세요.
명령이 하나만 있는 경우 하위 쉘을 사용할 수 있습니다.
$ (cd blob/a_long_directory_name/c/ && mv x.x y.y )
즉, 성공 시에만 cd
하위 쉘에서만 적용되며 현재 쉘의 작업 디렉토리는 변경되지 않습니다.mv
cd
명령이 여러 개인 경우 디렉터리 스태킹을 사용하세요.
$ pushd blob/a_long_directory_name/c/
$ mv x.x y.y
$ mv z.z q.q
$ popd
답변3
쉘의 텍스트 교체 기능을 사용할 수 있습니다. 에서는 bash
다음과 같은 짐승을 사용할 수 있습니다.
mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy
그것을 파괴:
!#
지금까지 입력된 현재 줄입니다
:$
n
고려 중인 문자열의 마지막 단어를 선택하라는 메시지가 표시됩니다(이 경우)( 첫 번째 단어를 선택하려면 숫자로 대체 ). 지금까지 입력한 줄의 마지막 단어가 이전 단어가 됩니다.n
!#
:gs^xx^yy
g
결과 단어에 대해 전역( ) 텍스트 대체( )를 수행하고 'xx'를 'yy'로 바꿉니다. 패턴에 사용하도록 허용된 명령에 대한 구분 기호입니다.s
^
s
/
이 방법은 경로("xx")의 일부를 다른 단어("yy")로 바꿀 수 있으므로 약간 더 일반적입니다.
마지막으로 모든 기록 작업과 마찬가지로 적절한 셸 옵션(예: )을 설정하는 것이 좋습니다 ~/.bashrc
. 이 경우
shopt -s histverify
Enter 키를 누르면 편집된 줄이 나타나므로 계속 편집하고 오류를 확인할 수 있습니다.
왜 그런 구성을 사용하는지 잘 모르겠지만 이 경우에는 작동합니다.