scp와 함께 사용할 pwd / ls 형식화


2

와 함께 두 개의 터미널 창이 있습니다 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

상대 / 절대 경로 작업

그러한 명령 / 스위치 조합이 있습니까? 아니면 직접 해킹해야합니까?

대단히 감사합니다.

답변:


4

붙여 넣기 위해 이러한 출력을 인쇄하는 빠른 스 니펫 :

#!/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.


readlink나머지는 해킹하고 있지만 감사합니다 . 아무도 이미 내장 솔루션을 제공하지 않으면 (이 스크립트를 서버에 복사 할 필요없이)이 답변을 수락 할 것입니다.
유미로
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.