私はただsftpを使うことを学んでいます、そして私は私のローカルコンピュータにリモートコンピュータからディレクトリをコピーしたいです。試してみると
get [directory]
それは私にこのエラーを与えます:
Cannot download non-regular file: /home/mpirocch/Documents
get -R
も動作しません。
-r
(recursive)フラグを使用してください。
get -r *
つかいます:
scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
lftp
:を使用してください。
lftp sftp://user@Host
次に、lftp内で、コピーしたいディレクトリにcd
を入力し、mirror
コマンドを使用して、選択したディレクトリを次のように再帰的にダウンロードします。
mirror
このコマンドはオプションと引数を受け取ります。
鏡 [オプション] [ソース [ターゲット]]
たとえば、-R
(または--reverse
)オプションを指定すると、ローカルディレクトリツリーがリモートディレクトリにアップロードされます。
mirror -R
他のコマンドやオプションについてはlftp(1)
のmanページ プロジェクトのサイト または Debian.org を参照してください。
まあ、この小さなガイドは、lftpでリモートサーバをローカルフォルダにミラーリングするのを手伝うべきです
lftp sftp://user:[email protected]:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
sftp://
=はSFTPプロトコルを使用しますmirror
=ミラーモードverbose
=はダウンロード中のファイルを表示しますuse-pget-n
=セグメント数、特に大きなファイルを高速化するのに役立ちますparallel
=乗数ファイルを同時にダウンロードしますファイルを並行してダウンロードする場合は、use-pget-n=8
を--parallel=8
に切り替えます。
リモートフォルダをローカルフォルダにミラーリングする必要がある人に役立つことを願います。
もっと良いものが見つかるなら、sftpプログラムを直接使わないでください。 Linuxでは、多くのファイルマネージャ(少なくともNautilusとDolphin、GNOMEとKDEのもの)がsftpをネイティブにサポートしており、常にsshfsがあります。 Windowsの場合、WinSCPがあり、おそらく 他のもの があります。これらすべての要点は、通常のファイルシステム上にあるかのように、sftpを介してファイルにアクセスできるようにすることです。したがって、sftpを介してそれらにアクセスしていることに注意する必要はありません。
mget
の代わりにget
を試してください。
明確化:mget
はあなたがコピーしたいディレクトリの中にいるならうまくいくでしょう。あなたがこのような何かをするならば:
sftp> cd dir_to_get
sftp> mget *
そのディレクトリ内のすべてのファイルが取得されます。ただし、notはサブディレクトリの内容を再帰的に取得します。
get -r [directory]
[directory]
とその下のすべてを取得します。r
は再帰を表します。これは、help
からsftp
と入力するだけで見つかりました。
cp
と同様に、
scp -rp user@Host:/path/to/dir dir
上記は元のファイルとサブディレクトリの時間とモードを保存します。これはバックアップの取得に特に役立ちます。
私は次のツリーを持っているリモートサーバーのJava distフォルダを持っています。
- dist
--- Audio.jar
--- README
--- lib
----- lib.jar
目標は:私はSFTPを使用したいですか?そしてそれらを/ tmp/<>に入れます。
ステップ1. sftp remoteuser @ ip
ステップ2. cd/var/tmp
ステップ2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib
ステップ3. lcd/tmp/dist
ステップ4. mget *
ステップ5. lcd/tmp/dist/lib
ステップ6. mget *
ステップ7。最後に私は私の目標を持っています
$ ls
Audio.jar lib README.TXT