bash 별명과 함께 scp를 사용할 수 없습니다


15

이 코드는 작동하지 않습니다 :

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/

별명은 다음과 같습니다.

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

이 문제를 어떻게 해결합니까?

편집하다

의 많은 인스턴스를 실행하는 것과 같이 다음 코드와 비슷한 것이 가능 bash합니까?

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/

위의 코드가 작동하지 않았습니다.

답변:


22

달성하려는 작업에 Bash 별칭을 사용하지 않는 것이 좋습니다. SSH의 구성 파일에 모든 정보를 입력하고 완료 할 수 있습니다. ssh_config어디에서 왔는지 궁금하다면 맨 페이지를 읽으십시오 . 당신은 몇 가지 깔끔한 일을 할 수 있습니다ssh_config

파일은 여기에 있습니다 ~/.ssh/config

선호하는 편집기를 사용하여 파일을 작성한 다음 상황에 맞게 조정하십시오.

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22

이제 다음 명령을 실행하도록 설정되었습니다.

$ ssh nameOfBashAlias 

내가 당신이 모르는 것은이 모든 것이 얼마나 통합되어 있는지입니다. 이 설정이 완료되었으므로 다음 명령도 작동합니다

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 

scp는 포트에 "-P"를 사용하고 ssh는 "-p"를 사용한다는 것을 더 이상 기억하지 않습니다. 또한이 "별칭"은 전송과 같은 OS X gui 앱에서도 작동합니다.

OpenSSH는 다음 소스에서 다음 순서로 구성 데이터를 얻습니다.

  1. 명령 줄 옵션
  2. 사용자의 구성 파일 ~/.ssh/config
  3. 시스템 전체 구성 파일 /etc/ssh_config

네, 전적으로 동의합니다. 다른 시스템 및 기타 도구와 훨씬 잘 동기화되기 때문에 요즘도 그 방법을 사용하고 있습니다.
Léo Léopold Hertz 준영

MacOSX에서 작동하지 않습니다
Jabran Saeed

@JabranSaeed OS, 버전, 쉘 등에 관한 정보가 담긴 사례에 대한 답변으로 새로운 질문 또는 커뮤니티 위키를여십시오. 의견을 보내시면 여기에 도전에 대한 링크를 제공하십시오. 이 스레드는 GNU scp와 관련이 있습니다.
Léo Léopold Hertz 준영

그러나 이것은 OS X에서 작동하는 것으로 보입니다 (적어도 El Capitain 10.11.6에서는 작동했습니다)
Alex W

5

scpbash를 실행하지 않습니다. 이것을 실행해야합니다 :

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/

별칭 만 있고 위 코드를 사용할 수없는 경우 다음과 같이 실행 해보십시오.

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico

이런 식으로 실제로 ssh파일 내용을 호출 하여 디스크의 파일로 보냅니다. 다른 방법으로 업로드 할 수 있습니다.


첫 번째 명령은 scp ~ / Desktop / favicon.ico username@11.11.11.111 : / public_html / mySite / templates / blog /
Léo Léopold Hertz 준영

2

별명은 bash 명령 의 단어 일 때 대체됩니다 . 당신의 별명은 세 번째 단어의 시작 부분에 나타납니다.

나는 이것을 위해 쉘 변수를 사용할 것이다.

blah='myUsername@11.11.11.111'
scp ~/Desktop/favicon.ico ${blah}:/public_html/mySite/templates/blog/

Btw, 나는 당신의 원래 별명에 ssh가 없어야한다고 생각합니다. 그리고 마지막 코드 샘플에는 잘못된 것으로 보이는>가 있습니다.


@mataap : 답변 주셔서 감사합니다!
Léo Léopold Hertz 준영

0

아니요, BASH별칭이 작동 하는 방식이 아니기 때문에 예제가 작동하지 않습니다 . 변수를 사용하는 것이 좋습니다. 이것을 당신의 ~/.profile또는 ~/.bashrc[어떤 쪽을 사용하든] 에 넣으십시오 :
site="user@site.com"
그러면 터미널에서 이것이 작동합니다 :
scp favicon.ico $site:/dir/


또는 iPod과 같은 스크립트를 작성할 수 있습니다. 내 bashrc ipod=192.168.2.60에서 나는 스크립트 source ~/.bashrc에서 변수를 스크립트에서 가져온 다음 스크립트에서 가져 scp $1 $ipod
옵니다. 단점은 재귀를 수행하기 위해 스크립트를 편집해야한다는 것입니다. 그리고 나는 1 파일 만 할 수 있습니다. 그러나 그중 하나가 필요할 때 나는 보통 scp터미널에서 직접 사용 합니다!
~ 매트

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.