터미널에서 FTP를 통해 폴더를 다운로드하려면 어떻게합니까?


답변:


9

mget포함 된 FTP 바이너리로 얻을 수있는 가장 가까운 것입니다. mkdir과 ​​cd / lcd를 실행 한 다음 패턴과 일치하는 것보다 모든 파일을 가져와야합니다.*

prompt토글 유용하게 사용할 수 있습니다.

FTP는 디렉토리가 아닌 디렉토리 내에서 파일 컨테이너로 작동합니다. 작업을 완료해야하고 ftp가 사용할 수있는 유일한 도구 인 경우 expect스크립트를 함께 사용하여 ftp를 구동 할 수 있습니다.

고맙게도 같은 대안이 있습니다 scp| rsync| wget전체 디렉토리에 해당하는 파일을 가져옵니다.


결론은 결론적으로 전체 폴더를 한 번에 다운로드 할 수 없다는 것입니다. 개별 파일을 다운로드해야합니까?
daviesgeek

예. ftp가 작업에 성공했다면 모두 wget, sftp, scp 및 rsync를 표시하지 않을 것입니다.
bmike

감사합니다 ... SFTP는 폴더 다운로드를 허용합니까?
daviesgeek

죄송합니다. sftp는 ftp와 동일한 구문 및 제한 사항입니다. ftp 인증 대신 ssh를 사용하여 연결을 보호하기 만하면됩니다.
bmike

FTP 프로토콜에 바인딩되어 있다면 lftp 를 사용 하여 디렉토리 트리를 재귀 적으로 다운로드 할 수 있습니다 . 이 문제에 대한 구식 해결책.
Ian C.

7

다른 방법은 curl을 사용하는 것입니다

curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*

나는 이것이 효과가 있다고 생각한다.

curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip

이것이 도움이 되었기를 바랍니다.


알겠습니다. 대단히 감사하지만 FTP를 통해이를 수행 할 수있는 방법이 있습니까?
daviesgeek

대박! curl의 FTP proclivity를 몰랐습니다. 감사!
bmike

그래 ... 나도 아니 었어 아마 더 자주 쓸거야
daviesgeek

2
나는 당신의 제안을 시도하고 있지만 이것을 얻는 중 :curl: (78) RETR response: 550
Omer

1
curl절대로 이것을 처리 할 수 ​​없습니다. wget할 수있다.
Ken Sharp

3

사용 scp (문서) 또는 sftp (문서)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory

그것은 내가 요구하는 것이 아닙니다. 내 질문은 : 터미널에서 FTP를 통해 폴더를 어떻게 다운로드합니까? 즉, 폴더를 다운로드 할 때 FTP의 어떤 명령을 사용합니까?
daviesgeek

2
sftp는 FTP +1보다 훨씬 뛰어납니다
bmike

1
@bmike : 그렇습니다. 그러나 오래된 ftp 서버는 sftp를 지원하지 않을 수 있습니다.
PLL

3

내 웹 서버에서 22,000 개 이상의 웹캠 사진을 다운로드해야했는데 이는 Finder와 FTP 프로그램 CyberDuck 모두에게 약간의 문제입니다.

그래서 나는 @bmike의 답변에 따라 다음을 수행했습니다.

mkdir ~/Desktop/image-dump-myserver
ftp ftp://myuser@myserver.com
# enter password

# You're now in the ftp console (where the world is still okay)

# Set the local folder
lcd ~/Desktop/image-dump-myserver

# cd into the desired folder (`ls`, `pwd` etc. all work here)
cd /httpdocs/images

# Toggle the interactive mode
prompt

# Download the desired files (all the images in my case)
mget *.jpg

그런 다음 파일이 원하는 폴더로 다운로드됩니다.

local: image1433509292_1582.jpg remote: image1433509292_1582.jpg  
229 Entering Extended Passive Mode (|||50001|)  
150 Opening BINARY mode data connection for image1433509292_1582.jpg (63626 bytes)  
100% |***********************************| 63626        1.51 MiB/s    00:00 ETA  
226 Transfer complete  
63626 bytes received in 00:00 (0.98 MiB/s)  

local: image1427279963_0841.jpg remote: image1427279963_0841.jpg  
229 Entering Extended Passive Mode (|||50053|)  
150 Opening BINARY mode data connection for image1427279963_0841.jpg (67194 bytes)  
100% |***********************************| 67194        1.64 MiB/s    00:00 ETA  
226 Transfer complete  
67194 bytes received in 00:00 (1.04 MiB/s) 

local: image1439798493_1783.jpg remote: image1439798493_1783.jpg  
229 Entering Extended Passive Mode (|||50357|)  
150 Opening BINARY mode data connection for image1439798493_1783.jpg (48876 bytes)  
100% |***********************************| 48876        1.80 MiB/s    00:00 ETA  
226 Transfer complete  
48876 bytes received in 00:00 (996.81 KiB/s)  
....  

3

나는 사용하고있다

wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
    ftp://ftp.server.com/folder_to_download/*

불행히도 wget병렬 다운로드는 지원하지 않습니다.


0

이 지침을 따르십시오 :

유형

ftp

그런 다음 ftp에 있습니다

ftp>

그런 다음 서버의 IP를 엽니 다

ftp> open xx.xxx.xxx.xx

그런 다음 사용자 이름을 묻습니다.

Name:(your ftp server): your_username

그런 다음 비밀번호를 묻습니다.

Password:  your_password

그런 다음 로그인하고 ftp> 쉘을 다시 볼 수 있습니다. "ls"를 입력하여 모든 파일을 나열하고 cd를 사용하여 inix와 같이 탐색 할 수 있습니다.

파일 이름을 찾으면

ftp> get filename

et voila, 파일은 셸 로컬을 연 디렉토리로 다운로드됩니다.

디렉토리를 다운로드 할 수 없지만 디렉토리로 이동하여 여러 파일을 모두 다운로드 할 수 있습니다 (예 : 모든 파일)

작업 : 여러 파일 다운로드

원격 ftp 서버에서 로컬 시스템으로 여러 파일을 복사하려면 다음과 같이 mget 명령을 사용해야합니다. 각 파일을 전송하기 전에 예 / 아니오 (Y / N) 응답을 묻는 프롬프트가 표시 될 수 있습니다 (ftp 클라이언트에 -i 옵션을 전달하여 프롬프트를 비활성화 할 수 있음). 모든 파일을 다운로드하려면 다음을 입력하십시오. ftp> mget *

정보 http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ 환호


ftp unix 도구는 OS X에서 제거되었습니다 (Sierra에서는 생각합니까?).
benwiggy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.