Làm cách nào để tải xuống các thư mục qua FTP trong Terminal?


Câu trả lời:


9

mgetlà gần nhất bạn có thể nhận được với nhị phân FTP đi kèm. Bạn phải mkdir và cd / lcd và sau đó lấy tất cả các tệp hơn khớp với một mẫu như*

Việc promptchuyển đổi có thể có ích.

FTP hoạt động trong một thư mục, không phải trên các thư mục dưới dạng các tệp chứa. Nếu bạn hoàn toàn phải hoàn thành công việc và ftp là công cụ duy nhất bạn có thể sử dụng - bạn có thể kết hợp một expecttập lệnh để điều khiển ftp cho bạn.

Rất may có những lựa chọn thay thế như scp| rsync| wgetđể có được toàn bộ thư mục có giá trị của các tập tin.


Ok ... vì vậy điểm mấu chốt là tôi không thể tải xuống toàn bộ một thư mục cùng một lúc; Tôi phải tải về các tập tin cá nhân, phải không?
daviesgeek

Vâng Mọi người sẽ không hiển thị wget, sftp, scp và rsync nếu ftp hoàn thành nhiệm vụ.
bmike

Cảm ơn ... SFTP có cho phép tải xuống thư mục không?
daviesgeek

Rất tiếc (xin lỗi) - không. sftp là cú pháp và giới hạn tương tự của ftp - chỉ bảo mật kết nối bằng ssh thay vì xác thực ftp.
bmike

Nếu bạn bị ràng buộc với giao thức FTP, bạn có thể sử dụng lftp để thực hiện tải xuống đệ quy của cây thư mục. Giải pháp trường học cũ cho vấn đề này.
Ian C.

7

Một cách khác là sử dụng curl

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

Tôi nghĩ rằng điều này đang làm việc, hoặc tập tin theo tập tin

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

Tôi hy vọng điều này sẽ giúp.


OK, cảm ơn bạn rất nhiều, nhưng có cách nào thông qua FTP để làm điều này không?
daviesgeek

Tuyệt vời! Tôi đã không biết về tuyên bố FTP của curl. Cảm ơn!
bmike

Vâng ... tôi cũng không sử dụng nó thường xuyên hơn.
daviesgeek

2
Tôi đang thử đề xuất của bạn nhưng nhận được điều này:curl: (78) RETR response: 550
Omer

1
curlhoàn toàn không thể xử lý việc này. wgetcó thể.
Ken Sharp

3

Sử dụng scp (tài liệu) hoặc sftp (tài liệu)

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

Đó không phải là những gì tôi đang hỏi. Câu hỏi của tôi là: Làm cách nào để tải xuống một thư mục qua FTP trong Terminal? Nói cách khác, tôi sử dụng lệnh nào trong FTP để tải xuống một thư mục?
daviesgeek

2
sftp vượt trội hơn nhiều so với FTP +1
bmike

1
@bmike: có, nhưng các máy chủ ftp cũ hơn có thể không hỗ trợ sftp.
PLL

3

Tôi đã phải tải xuống 22.000 ảnh trên webcam từ máy chủ web của mình, đây là một thách thức đối với cả Finder và chương trình FTP CyberDuck của tôi.

Vì vậy, tôi đã làm như sau (dựa trên câu trả lời của @ 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

Sau đó, các tệp đang được tải xuống vào thư mục mong muốn:

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

tôi đang dùng

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

Thật không may wget, không hỗ trợ tải xuống song song.


0

làm theo hướng dẫn này:

kiểu

ftp

sau đó bạn đang ở trong ftp trông như

ftp>

sau đó bạn mở ip của máy chủ

ftp> open xx.xxx.xxx.xx

sau đó nó sẽ hỏi tên người dùng, bạn sẽ cung cấp

Name:(your ftp server): your_username

sau đó nó sẽ hỏi mật khẩu

Password:  your_password

sau đó bạn nên đăng nhập và xem lại ftp> shell, bạn có thể nhập "ls" để liệt kê tất cả các tệp và bạn có thể điều hướng như inix với cd

Khi bạn tìm thấy tên tệp của mình, bạn có thể tải xuống với

ftp> get filename

et voila, tập tin sẽ được tải xuống thư mục bạn đã mở shell localy từ

bạn không thể tải xuống các thư mục, nhưng bạn có thể điều hướng vào thư mục của mình và tải xuống nhiều ví dụ: tất cả các tệp

Nhiệm vụ: Tải xuống nhiều tệp

Bạn cần sử dụng lệnh mget như sau để sao chép nhiều tệp từ máy chủ ftp từ xa sang hệ thống cục bộ. Bạn có thể được nhắc trả lời có / không (Y / N) trước khi chuyển từng tệp (bạn có thể tắt lời nhắc bằng cách chuyển tùy chọn -i cho máy khách ftp). Để tải xuống tất cả các tệp, nhập: ftp> mget *

thông tin từ http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ chúc mừng


Công cụ unp ftp đã bị xóa khỏi OS X (ở Sierra, tôi nghĩ vậy?).
benwiggy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.