줄 끝에서 파일을 업로드하는 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대신 exit대화형 셸에 의해 로드되므로 exit셸을 사용하면 종료된다는 점에 유의하세요 .

답변4

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

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

관련 정보