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