一連のソフトウェアファイルを~/Downloads
私のパーソナルコンピュータのサブディレクトリにダウンロードしました。またbashを使用してssh
。
ssh
このファイルをリモートコンピュータに転送できますか?
答え1
この目的で使用したい場合がありますscp
。 SSHプロトコルを使用してファイルを転送する安全な方法です。
たとえば、yourfile.txt
fromというファイルを~/Downloads
リモートコンピュータにコピーするには、次のようにします。
scp ~/Downloads/yourfile.txt [email protected]:/some/remote/directory
より多くの例を見ることができますここ。
答え2
これは明らかに正しいツールですが、scp
何らかの理由で利用できない場合は、ローカルシステムで次の操作を実行してディレクトリ構造をリモートシステムにコピーできます。
tar -c . | ssh <remote> tar -x
tar
これはローカルシステムの現在のディレクトリになり、そのtar
ディレクトリを書き込み、リモートコマンドを実行して読み取るファイルを解凍できるコマンドstdout
にパイプします。ssh
stdin
-f -
作成と抽出の両方のデフォルト設定に対するDietrich Eppのコメントを反映するように編集されているため、明示的に指定する必要はありません。
答え3
より多くの状況でこれを行うには、sshfs
FUSE(Linux、* BSD、Mac OS X)をサポートするUnixシリーズを使用している場合は、リモートファイルシステムをインストールすることをお勧めします。 ~/remote-server などのホームディレクトリの下にディレクトリを作成します。
$ mkdir ~/remote-server
その後、リモートファイルシステムマウントを使用してくださいsshfs
。 「yourserver.com」をリモートコンピュータのホスト名に変更し、「リモートディレクトリ名」をリモートシステムで使用されているディレクトリに変更します。
$ sudo sshfs [email protected]:/name/of/remote/directory ~/remote-server/
これが完了すると、リモートディレクトリはファイルシステムの一部になり、次のようなすべての一般的なツールを使用できますcp
。
$ cp ~/Downloads/your-files ~/remote-server
まだインストールしていない場合は、sshfs
パッケージマネージャを使用してコンピュータにインストールできます(sshfs
または名前のパッケージを検索fuse-sshfs
)。詳細については、次を参照してください。オンラインチュートリアル。
ちなみに、これはリモートサーバーからファイルを管理するための私のお気に入りの方法です。私は通常この方法で1つの本番サーバーと2つの開発サーバーをセットアップし、一般的なファイルナビゲーションワークフローを使用します。
答え4
上記の回答に追加します。場合によっては、リモートパスがわからない場合があります。そのような場合は、sftp
まず目的の場所に移動してから、getまたはputを使用して実際にファイルをダウンロードまたはアップロードします。
これは常に同期状態を維持したい場合や、リモートシステム上の一部のファイルをローカルで実行したい場合にsshfs
便利です。