나는 종종 이렇게 합니다:
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
...