와 함께 두 개의 터미널 창이 있습니다 bash
. 하나는 client
컴퓨터의 로컬 이고 다른 하나는의 SSH 세션을 가지고 server
있습니다. 온 server
, 나는 디렉토리에 오전 파일을보고 내에 복사하고 싶은 client
로부터 사용 SCP client
.
온 server
나는 참조 :
user@server:/path$ ls filename
filename
지금 입력 할 수 있습니다 scp
에서 client
, 쉘을 선택하고 복사 user@server:/path
으로부터 server
받는 쉘 및 붙여 넣기 client
쉘, 다음 슬래시를 입력하고 복사하고 붙여 넣기 filename
하고 얻을 수있는 점을 추가 :
user@client:~$ scp user@server:/path/filename .
에 scp
로부터 파일을 server
받는 사람 client
.
이제에서 다음 server
과 같은 명령을 검색하고 있습니다 .
user@server:/path$ special_ls filename
user@server:/path/filename
client
쉘 에 복사하여 붙여 넣을 수있는 완전한 scp 준비 문자열을 제공합니다 .
형태의 무언가
echo $USER@$HOSTNAME:${pwd}/$filename
상대 / 절대 경로 작업
그러한 명령 / 스위치 조합이 있습니까? 아니면 직접 해킹해야합니까?
대단히 감사합니다.
답변
붙여 넣기 위해 이러한 출력을 인쇄하는 빠른 스 니펫 :
#!/bin/sh
SCPUSER="myuser"
SERVER="myserver"
while [ $# -ne 0 ]; do
printf '%s@%s:%s\n' "${SCPUSER}" "${SERVER}" "$(readlink -f "${1}")"
shift
done
while; shift
건설은 줄 바꿈으로 구분 인쇄 할 여러 인수를 제공 할 수 있습니다.
이것은 간단합니다. 아마 당신이 찾고있는 위의 “속임수”는 아마 단지 readlink
입니다.
붙여 넣기 단계와 서버에서 직접 파일 을 피하기 위해 서버 측을 ssh-agent
래핑 scp
하기 위해 키를 통해 (로컬 서버이고 보안이 너무 엄격하지 않은 경우) 비밀번호를 사용하지 않는 로그인을 설정할 수도 있습니다 scp
.