이상한 문제가 있습니다. FTP 서버에서 내 bash 스크립트가 실행 중인 디렉터리가 아닌 다른 디렉터리로 파일을 다운로드하려고 합니다. 수동으로 하면 모든 것이 잘 작동합니다. 유형을 연결할 수 있나요
get sampleFile.csv /path/to/directory/
이것을 bash 스크립트에 넣으려고 하면 작동하지 않습니다. 수동으로 수행하는 것과 동일한 출력을 얻습니다.
/ftp/sampleFile.csv 100% 384 0.4KB/s 00:01
하지만 파일은 디렉토리나 서버에서 찾을 수 있는 어디에도 없습니다. 나는 열심히 노력했다
sftp ***** << EOF
get sampleFile.csv /path/to/directory/
quit
EOF
그리고
cd /path/to/directory/
sftp ***** << EOF
get sampleFile.csv
quit
EOF
그리고
sftp ***** << EOF
lcd /path/to/directory
get sampleFile.csv
quit
EOF
이 모든 작업은 수동으로 수행됩니다.
작동하는 유일한 것은
sftp ***** << EOF
get sampleFile.csv
quit
EOF
그러면 파일이 bash 스크립트와 동일한 디렉터리에 배치되어 표시됩니다. 어떤 아이디어가 있나요?
답변1
sftp 스크립트 행 lcd path/you/want/to/save/to
앞에 추가하십시오 .get
❯ sftp localhost
Connected to localhost.
# can't get sampleFile.csv because lpwd isn't what I think
sftp> get sampleFile.csv path/to/directory
File "/home/ryan/sampleFile.csv" not found.
sftp> lpwd
Local working directory: /home/ryan
# this will grab the file I want, but save it into `lpwd` again
sftp> get path/to/directory/sampleFile.csv
Fetching /home/ryan/path/to/directory/sampleFile.csv to sampleFile.csv
# pretend I want to save it locally in /tmp... so: lcd /tmp
sftp> lcd /tmp
sftp> get path/to/directory/sampleFile.csv
Fetching /home/ryan/path/to/directory/sampleFile.csv to sampleFile.csv