SCP 한 줄 명령은 줄 끝에서 파일을 업로드합니다.

SCP 한 줄 명령은 줄 끝에서 파일을 업로드합니다.

나는 종종 이렇게 합니다:

scp some_file [email protected]

항상 이 줄을 복사해서 붙여넣은 다음 업로드하는 파일을 변경하려면 중간 부분을 편집해야 하기 때문에 짜증이 납니다.

파일 이름이 끝에 오도록 하고 계속 작동하도록 이 줄을 수정할 수 있습니까?

기본적으로 저는 셸에 붙여 넣을 수 있는 문자열을 원하고, 파일 이름을 입력하고 파일을 scp서버에 업로드합니다.

답변1

아주 간단한 스크립트를 만들어 보는 것은 어떨까요? 다음을 myscp포함하는 say라는 파일을 편집하세요.

#!/bin/bash
scp $1 [email protected]

그런 다음 chmod +x myscp나중에 간단히

./myscp some_file

이것은 모두 myscp스크립트가 현재 디렉터리에 있다고 가정하고, 그렇지 않으면 경로를 추가합니다.

/path/to/myscp some_file

또는 더 나은 방법은 위치에 대한 경로와 이 스크립트 및 향후 스크립트를 $path.

답변2

가능한 해결 방법 중 하나:

(read FILE_NAME; scp "$FILE_NAME" [email protected]) <<< some_file

답변3

쉘 또는 이에 상응하는 끝 부분에 추가하십시오 .bashrc.

my_function_name() {
    if [ -r "$1" ]; then
        scp "$1" [email protected]
    else
        echo "File does not exists or can not be read, $1" >&2
        return 1
    fi
}

my_function_name필요에 따라 변경하세요.

이제 이름으로 함수를 호출하고 파일을 인수로 전달하면 읽기 액세스를 테스트하고 scp실행하거나 읽을 수 없으면 종료됩니다.

대화형 셸에 의해 로드되고 셸을 사용하면 종료되므로 return대신 사용했습니다 .exitexit

답변4

아니요, 매개변수를 쉘 스크립트로 래핑하지 않고는 매개변수의 순서를 변경할 수 없습니다. 하지만 다음과 같은 작업은 가능합니다.

R='[email protected]'
scp some_file $R
scp other_file $R
...

관련 정보