Jak mogę pobrać cały folder przez FTP w terminalu?
Jak mogę pobrać cały folder przez FTP w terminalu?
Odpowiedzi:
mget
jest najbliższy dostępnemu plikowi binarnemu FTP. Musisz mkdir i cd / lcd, a następnie pobrać wszystkie pliki niż pasujące do wzorca*
prompt
Przełącznik może się przydać.
FTP działa w obrębie katalogu, a nie w katalogach jako kontenerach plików. Jeśli absolutnie musiałeś wykonać zadanie, a ftp było jedynym narzędziem, którego możesz użyć - możesz skompletować expect
skrypt, aby uruchomić ftp za ciebie.
Na szczęście istnieją alternatywy takie jak scp
| rsync
| wget
aby uzyskać pliki o wartości katalogów całych.
Innym sposobem jest użycie curl
curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*
Myślę, że to działa lub plik po pliku
curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip
Mam nadzieję, że to pomogło.
curl: (78) RETR response: 550
curl
absolutnie nie mogę sobie z tym poradzić. wget
mogą.
Użyj scp
(dokumentacja) lub sftp
(dokumentacja)
scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
Musiałem pobrać ponad 22 000 zdjęć z kamery internetowej z mojego serwera, co jest wyzwaniem zarówno dla Findera, jak i mojego programu FTP CyberDuck.
Zrobiłem więc następujące (na podstawie odpowiedzi @ 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
Następnie pliki są pobierane do żądanego folderu:
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)
....
ja używam
wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
ftp://ftp.server.com/folder_to_download/*
Niestety wget
nie obsługuje pobierania równoległego.
postępuj zgodnie z tą instrukcją:
rodzaj
ftp
to wyglądasz jak ftp
ftp>
następnie otworzysz ip serwera
ftp> open xx.xxx.xxx.xx
wtedy poprosi o nazwę użytkownika, podasz
Name:(your ftp server): your_username
wtedy poprosi o hasło
Password: your_password
wtedy powinieneś być zalogowany i ponownie zobaczyć powłokę ftp>, możesz wpisać „ls”, aby wyświetlić listę wszystkich plików, i możesz nawigować jak w inix z cd
kiedy znajdziesz swoją nazwę pliku, możesz ją pobrać
ftp> get filename
i voila, plik zostanie pobrany do katalogu, z którego lokalnie otworzyłeś powłokę
nie możesz pobrać katalogów, ale możesz przejść do swojego katalogu i pobrać wiele np. wszystkich plików
Zadanie: pobierz wiele plików
Aby skopiować wiele plików ze zdalnego serwera ftp do systemu lokalnego, należy użyć polecenia mget w następujący sposób. Możesz zostać poproszony o odpowiedź tak / nie (T / N) przed przesłaniem każdego pliku (możesz wyłączyć monit, przekazując opcję -i do klienta ftp). Aby pobrać wszystkie pliki, wpisz: ftp> mget *
informacje z http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers