mget을 사용하여 sftp에서 여러 파일 다운로드

mget을 사용하여 sftp에서 여러 파일 다운로드

일부 코드가 있는데 R한쪽에는 SFTP에 연결하고 일부 파일을 다운로드하려고 합니다. 다운로드해야 하는 파일은 R 코드에 의해 결정되며, 파일은 하나만 있을 수도 있고 여러 개일 수도 있습니다. 다운로드 파일을 사용하려고 하는데 mget작동하지 않는 것 같습니다.

sftp> mget abc.PDF  def.PDF ghi.PDF
Fetching /abc.PDF to def.PDF

세 파일을 모두 다운로드하는 대신 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이 너무 많은 파일을 캡처하는 경우 어떻게든 파일을 반복하여 하나씩 가져와야 합니다.

답변2

sftpOpenSSH 가 지원하지 않기 때문에 작동하지 않습니다 . 이는 (사실 맨페이지에 문서화되어 있지도 않음) 와 동일하며 mget원격 파일 이름 인수만 사용합니다(해당 인수는 glob일 수 있음).getmgethelp

get따라서 OpenSSH SFTP 클라이언트를 사용하려면 파일당 하나씩 발급 해야 합니다 . 또는 다른 SFTP 클라이언트(예: 원하는 기능 lftp포함 )를 사용할 수 있습니다. mget대안으로(알려준 Gilles에게 감사드립니다) cpFUSE를 통해 sshfs를 사용한 다음 일반 파일 복사 명령(또는 R에 내장된 모든 명령)을 사용하는 것이 더 편리할 수도 있습니다.

관련 정보