回答:
コマンドラインFTPは非常に原始的です。
リモートサイトにファイル/フォルダーを再帰的に送信することはできません。
ローカル側と同じリモート側でディレクトリ構造を再作成する場合は、mkdir
各パスを手動で使用mput *
して、そのディレクトリ内のすべてをリモート側に送信する必要があります。
これを簡単にする2つのオプション:
プリミティブFTPコマンドの使用を停止します(ncftpが適切な代替手段です)
tarを使用して、フォルダーをtarし、ファイルを送信し、反対側で抽出します。
mputは再帰を使用しないため、これは通常のftpプログラムでは不可能です。ncftpを使用して、「mput -r folder」を呼び出すことができます。
よろしくお願いします、ファビアン
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 *を追加することを忘れないでください。