いくつかのコードがありますが、R
片側にSFTPに接続していくつかのファイルをダウンロードしようとしています。ダウンロードする必要があるファイルはRコードによって決まります。ファイルは1つしかないかもしれません。ダウンロードファイルを使用しようとしてもmget
機能しないようです。
sftp> mget abc.PDF def.PDF ghi.PDF
Fetching /abc.PDF to def.PDF
3つのファイルをすべてダウンロードするのではなく、abc.PDFをダウンロードしてローカルディレクトリにdef.PDFとして保存します。私は何をしていますか?
答え1
mget
引数の「ソースファイル」部分としてglobを使用します(少なくともOpenSSHバージョン7.3では)。
sftp> ls *.pdf
foo.pdf bar.pdf
sftp> mget *.pdf
Fetching /home/jdoe/bar.pdf to bar.pdf
Fetching /home/jdoe/foo.pdf to foo.pdf
sftp>
逆に、glob getがあまりにも多くのファイルをキャプチャしている場合は、何らかの方法でファイルを1回ずつインポートしてください。
答え2
sftp
OpenSSHがサポートしていないため動作しません。これは(実際のマンページに文書化されていません)と同じです。mget
リモートファイル名引数のみを使用します(その引数はglobです)。get
mget
help
get
したがって、OpenSSH SFTPクライアントを使用するには、ファイルごとに1つずつ発行する必要があります。あるいは、他のSFTPクライアント(必要な機能をlftp
含む)を使用することもできます。mget
代わりに(通知されたGillesに感謝します)、cp
FUSEを介してsshfsを使用してから、通常のファイルコピーコマンド(またはRに組み込まれているすべてのコマンド)を使用する方が便利です。