mgetを使用してsftpから複数のファイルをダウンロードする

mgetを使用してsftpから複数のファイルをダウンロードする

いくつかのコードがありますが、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

sftpOpenSSHがサポートしていないため動作しません。これは(実際のマンページに文書化されていません)と同じです。mgetリモートファイル名引数のみを使用します(その引数はglobです)。getmgethelp

getしたがって、OpenSSH SFTPクライアントを使用するには、ファイルごとに1つずつ発行する必要があります。あるいは、他のSFTPクライアント(必要な機能をlftp含む)を使用することもできます。mget代わりに(通知されたGillesに感謝します)、cpFUSEを介してsshfsを使用してから、通常のファイルコピーコマンド(またはRに組み込まれているすべてのコマンド)を使用する方が便利です。

関連情報