답변:
커맨드 라인 FTP는 매우 원시적입니다.
원격 사이트를 향해 파일 / 폴더를 재귀 적으로 보낼 수 없습니다.
원격에서 로컬과 동일한 디렉토리 구조를 다시 작성하려면 mkdir
각 경로 를 수동으로 작성 mput *
하고 해당 디렉토리의 모든 항목을 원격으로 전송 하는 데 사용해야 합니다.
이를 쉽게하기위한 두 가지 옵션 :
기본 FTP 명령 사용 중지 (ncftp가 좋은 대안입니다)
tar를 사용하여 폴더를 압축 해제하고 파일을 전송 한 다음 반대편에서 추출하십시오.
mput은 재귀를 사용하지 않으므로 일반적인 ftp 프로그램에서는 불가능합니다. ncftp를 사용하고 'mput -r folder'를 호출 할 수 있습니다.
소원, Fabian
bash 스크립트를 만들었습니다.
#!/bin/bash
ftp_site=ftp.yoursite.net
username=my_user_name
passwd=my_password
remote=/path/to/remote/folder
folder=$1
cd /path/to/local/folder/$folder
pwd
ftp -in <<EOF
open $ftp_site
user $username $passwd
mkdir $remote/$folder
cd $remote/$folder
mput *
close
bye
그리고 그것을 호출
find . -type d -exec ./recursive-ftp.sh {} \;
작동하는 것 같습니다.
업로드하려는 디렉토리로 powershell cd를 열고 다음 명령을 실행하십시오.
1. gci -r | % {if ($_.PSIsContainer) {$t = $((($_.fullname -split "\\")[$(((pwd) -split "\\").length)..200]) -join "/"); "mkdir ""$t""`r`nmput ""$t/*"" ""$t"""}} | sc .\mput_all
2. notepad .\mput_all
결과를 ftp 창에 붙여 넣습니다. 즐겨. 또한 기본 디렉토리에서 모든 파일을 전송하기 위해 mput *을 추가하는 것을 잊지 마십시오.