Tôi đang cố gắng ftp một thư mục bằng cách sử dụng máy khách ftp dòng lệnh, nhưng cho đến nay tôi chỉ có thể sử dụng 'get' để nhận các tệp riêng lẻ.
Tôi đang cố gắng ftp một thư mục bằng cách sử dụng máy khách ftp dòng lệnh, nhưng cho đến nay tôi chỉ có thể sử dụng 'get' để nhận các tệp riêng lẻ.
Câu trả lời:
Bạn có thể dựa vào wget thường xử lý ftp đúng cách (ít nhất là theo kinh nghiệm của riêng tôi). Ví dụ:
wget -r ftp://user:pass@server.com/
Bạn cũng có thể sử dụng -m
đó là phù hợp cho phản chiếu. Nó hiện tương đương với -r -N -l inf
.
Nếu bạn có một số ký tự đặc biệt trong chi tiết thông tin xác thực, bạn có thể chỉ định --user
và các --password
đối số để làm cho nó hoạt động. Ví dụ với đăng nhập tùy chỉnh với các ký tự cụ thể:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDIT
Như được chỉ ra bởi @asmaier, xem ra ngay cả khi -r
là đệ quy, nó có mức tối đa mặc định là 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Nếu bạn không muốn bỏ lỡ các thư mục con, tốt hơn nên sử dụng tùy chọn phản chiếu , -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
wget -m
( --mirror
). wget -r
được giới hạn ở độ sâu đệ quy là 5 theo mặc định.
--user
và --password
quá trên Red Hat. Điều đáng quên của tôi là: GNU Wget 1.11.4 Red Hat modified
Tôi tự hỏi liệu đó là một phiên bản hay một thứ phân phối ...
-l 0
, do đó không cần sử dụng --mirror
có thể có một số tác dụng phụ không mong muốn, chẳng hạn như tệp
wget --ask-password -rl 99 ftp://user@server.com
. Bằng cách này, mật khẩu không hiển thị với ps
và không còn trong lịch sử. Tất nhiên, theo bản chất của ftp, nó được gửi không được mã hóa đến máy chủ.
$
), ví dụ:--user='user' --password='pa$$word'
Chỉ để bổ sung cho câu trả lời được đưa ra bởi Thibaut Barrère.
Tôi đã sử dụng
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Lưu ý dấu gạch chéo kép sau tên máy chủ. Nếu bạn không đặt thêm dấu gạch chéo, đường dẫn có liên quan đến thư mục chính của người dùng.
-nH
tránh việc tạo một thư mục được đặt tên theo tên máy chủ-nc
Tránh tạo một tệp mới nếu nó đã tồn tại trên đích (nó chỉ bị bỏ qua) --cut-dirs=5
cho phép lấy nội dung của thư mục / perfect / path / to / và đặt nó vào thư mục nơi bạn khởi chạy wget. Số 5 được sử dụng để lọc ra 5 thành phần của đường dẫn. Dấu gạch chéo kép có nghĩa là một thành phần phụ.--ftp-user=USER
và --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
sau khi bắt đầu ncftp
wget
, và nhanh hơn trong chế độ TAR. Cảm ơn!
Nếu lftp
được cài đặt trên máy của bạn, sử dụng mirror dir
. Và bạn đã hoàn thành. Xem bình luận của Ciro bên dưới nếu bạn muốn tải về một thư mục.
mirror -R dir
không tải lên / cập nhật thư mục đệ quy
mirror ./
để tải xuống tất cả các tệp và thư mục theo cách đệ quy trong đường dẫn hiện tại.
mirror
, cho thư mục hiện tại và đó là thư mục con.
Nếu bạn có thể sử dụng scp
thay vì ftp
, -r
tùy chọn sẽ làm điều này cho bạn. Tôi sẽ kiểm tra xem liệu bạn có thể sử dụng cơ chế truyền tệp hiện đại hơn FTP không.
scp
vẫn sẽ cố gắng sử dụng ssh, sẽ không hoạt động nếu bạn chỉ có thông tin đăng nhập FTP. Cảm thấy kỳ lạ khi trả lời một bình luận từ năm 2008 nói rằng công nghệ mà tôi đang mắc kẹt không phải là hiện đại :( Tốt năm 2008, tôi đã 18 tuổi vào ngày bạn đăng nhận xét của mình.
Sử dụng WGet thay thế. Nó hỗ trợ các giao thức HTTP và FTP.
wget -r ftp://mydomain.com/mystuff
Chúc may mắn!
tham khảo: http://linux.about.com/od/commands/l/blcmdl1_wget.htmlm
Có 'ncftp' có sẵn để cài đặt trong linux. Điều này hoạt động trên giao thức FTP và có thể được sử dụng để tải xuống các tệp và thư mục theo cách đệ quy. hoạt động trên linux. Đã được sử dụng và đang hoạt động tốt để chuyển tập tin / thư mục đệ quy.
Kiểm tra liên kết này ... http://www.ncftp.com/
Nếu bạn có thể, tôi thực sự khuyên bạn tar
và bzip
(hoặc gzip
, bất cứ điều gì làm nổi thuyền của bạn) thư mục trên máy từ xa đối với một thư mục có kích thước đáng kể, việc tiết kiệm băng thông có lẽ sẽ đáng để dành thời gian để nén / giải nén.
Bạn không nên sử dụng ftp
. Giống như telnet
nó không sử dụng các giao thức bảo mật và mật khẩu được truyền đi trong văn bản rõ ràng. Điều này giúp các bên thứ ba dễ dàng nắm bắt tên người dùng và mật khẩu của bạn.
Để sao chép các thư mục từ xa, các tùy chọn này tốt hơn:
rsync
là công cụ phù hợp nhất nếu bạn có thể đăng nhập qua ssh
, vì nó chỉ sao chép các khác biệt và có thể dễ dàng khởi động lại ở giữa trong trường hợp kết nối bị ngắt.
ssh -r
là tùy chọn tốt thứ hai để sao chép đệ quy cấu trúc thư mục.
Xem:
chuyển lời nhắc bằng lệnh PROMPT.
Sử dụng:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
, nó không đệ quy chút nào. trả lời từ ngày 22 tháng 9 năm 08 lúc 9:01 Thibaut Barrère dễ hiểu hơn nhưng phải thêm tùy chọn-l 0
như được đề cập trong các nhận xét