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これらがどこから来たのか興味があるなら、manページを読んでください。あなたはいくつかのきちんとしたことをすることができます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」を使用することを思い出す必要はありません。また、この「エイリアス」は、TransmitなどのOS X GUIアプリでも機能します。

OpenSSHは、次のソースから次の順序で構成データを取得します。

  1. コマンドラインオプション
  2. ユーザーの構成ファイル ~/.ssh/config
  3. システム全体の構成ファイル /etc/ssh_config

はい、あなたに完全に同意します。私は最近、他のシステムや他のツールとより良く同期するため、この方法も使用しています。
レオレオポルドヘルツ

MacOSXの上の私のためdoesnot作業
Jabranサイード

@JabranSaeed新しい質問を開くか、ここにあなたのOS、バージョン、シェルなどに関する情報を含むあなたのケースについての回答としてコミュニティwikiを開いてください。コメントであなたの挑戦についてのリンクも提供してください。このスレッドはGNU scpに関連しています。
レオレオポルトヘルツ준영

FWIWこれは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はファイルの内容を呼び出してディスク上のファイルに送信します。これは、アップロードの別の方法で作成できます。


/ public_htmlの/個人用サイト/テンプレート/ブログ/:最初のコマンドは、SCP〜/デスクトップ/ favicon.icoをusername@11.11.11.111する必要があります
レオ・レオポルド・ヘルツ준 영

2

エイリアスは、bashコマンドの最初の単語である場合に置き換えられます。3番目の単語の先頭にエイリアスが表示されます。

これにはシェル変数を使用します。

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

ところで、元のエイリアスにsshを含めるべきではないと思います。また、最後のコードサンプルには>も含まれていますが、これも間違っています。


@mataap:ご回答ありがとうございました!
レオレオポルトヘルツ준영

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.