Saya mencoba untuk membuat folder menggunakan klien baris perintah ftp, tapi sejauh ini saya hanya bisa menggunakan 'get' untuk mendapatkan file individual.
Saya mencoba untuk membuat folder menggunakan klien baris perintah ftp, tapi sejauh ini saya hanya bisa menggunakan 'get' untuk mendapatkan file individual.
Jawaban:
Anda bisa mengandalkan wget yang biasanya menangani ftp dengan benar (setidaknya dalam pengalaman saya sendiri). Sebagai contoh:
wget -r ftp://user:pass@server.com/
Anda juga bisa menggunakan -m
mana yang cocok untuk mirroring. Saat ini setara dengan -r -N -l inf
.
Jika Anda memiliki beberapa karakter khusus dalam detail kredensial, Anda dapat menentukan --user
dan --password
argumen untuk membuatnya berfungsi. Contoh dengan login khusus dengan karakter tertentu:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDIT
Seperti yang ditunjukkan oleh @asmaier, perhatikan bahwa meskipun -r
hanya untuk rekursi, ia memiliki level maksimum 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Jika Anda tidak ingin kehilangan subdirs, lebih baik menggunakan opsi mirroring, -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
terbatas pada kedalaman rekursi 5 secara default.
--user
dan --password
juga pada Red Hat. Wget saya adalah: GNU Wget 1.11.4 Red Hat modified
Saya ingin tahu apakah itu versi versi atau distro ...
-l 0
, jadi tidak perlu menggunakan --mirror
yang mungkin memiliki beberapa efek samping yang tidak diinginkan seperti .listing files
wget --ask-password -rl 99 ftp://user@server.com
. Dengan cara ini kata sandi tidak terlihat dengan ps
dan tidak tetap dalam sejarah. Tentu saja, dengan sifat ftp itu dikirim tidak terenkripsi ke server.
$
), misalnya--user='user' --password='pa$$word'
Sekadar melengkapi jawaban yang diberikan oleh Thibaut Barrère.
Saya menggunakan
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Perhatikan garis miring ganda setelah nama server. Jika Anda tidak melakukan tebasan ekstra, jalurnya relatif ke direktori home pengguna.
-nH
menghindari pembuatan direktori bernama setelah nama server-nc
menghindari membuat file baru jika sudah ada di tujuan (hanya dilewati) --cut-dirs=5
memungkinkan untuk mengambil konten dari direktori / absolute / path / ke / dan untuk meletakkannya di direktori tempat Anda memulai wget. Angka 5 digunakan untuk menyaring 5 komponen jalur. Double slash berarti komponen tambahan.--ftp-user=USER
dan --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
setelah memulai ncftp ...
wget
, dan lebih cepat juga dalam mode TAR. Terima kasih!
Jika lftp
diinstal pada mesin Anda, gunakan mirror dir
. Dan kamu sudah selesai. Lihat komentar oleh Ciro di bawah ini jika Anda ingin mengunduh direktori secara rekursif.
mirror -R dir
apakah pengunggahan / pembaruan direktori rekursif
mirror ./
untuk mengunduh semua file dan folder secara rekursif di jalur saat ini.
mirror
, untuk direktori saat ini dan subfoldernya.
Jika Anda dapat menggunakannya scp
sebagai gantinya ftp
, -r
opsi akan melakukan ini untuk Anda. Saya akan memeriksa untuk melihat apakah Anda dapat menggunakan mekanisme transfer file yang lebih modern daripada FTP.
scp
masih akan mencoba menggunakan ssh, yang tidak akan berfungsi jika Anda hanya memiliki kredensial FTP. Terasa aneh menanggapi komentar dari 2008 yang mengatakan bahwa teknologi yang saya pakai tidak modern :( Selamat tua 2008, saya berusia 18 tahun saat Anda memposting komentar Anda.
Gunakan WGet sebagai gantinya. Ini mendukung protokol HTTP dan FTP.
wget -r ftp://mydomain.com/mystuff
Semoga berhasil!
referensi: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Ada 'ncftp' yang tersedia untuk instalasi di linux. Ini berfungsi pada protokol FTP dan dapat digunakan untuk mengunduh file dan folder secara rekursif. bekerja di linux. Telah digunakan dan berfungsi dengan baik untuk transfer folder / file rekursif.
Periksa tautan ini ... http://www.ncftp.com/
Jika Anda bisa, saya sangat menyarankan Anda tar
dan bzip
(atau gzip
, apa pun yang mengapung perahu Anda) direktori pada mesin jarak jauh — untuk direktori dengan ukuran signifikan apa pun, penghematan bandwidth mungkin sepadan dengan waktu untuk zip / unzip.
Anda seharusnya tidak menggunakan ftp
. Seperti telnet
tidak menggunakan protokol aman, dan kata sandi dikirimkan dalam teks yang jelas. Ini memudahkan pihak ketiga untuk menangkap nama pengguna dan kata sandi Anda.
Untuk menyalin direktori jarak jauh, opsi-opsi ini lebih baik:
rsync
adalah alat yang paling cocok jika Anda dapat masuk melalui ssh
, karena hanya menyalin perbedaan, dan dapat dengan mudah restart di tengah jika koneksi terputus.
ssh -r
adalah pilihan terbaik kedua untuk menyalin struktur direktori secara rekursif.
Lihat:
beralih prompt dengan perintah PROMPT.
Pemakaian:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
, itu tidak rekursif sama sekali. jawaban dari 22 Sep '08 di 9:01 Thibaut Barrère lebih mudah dimengerti tetapi harus menambahkan opsi-l 0
seperti yang disebutkan dalam komentar