Bash 如何使用命令通过FTP覆盖文件?
我编写了这样一个shell脚本,通过ftp将文件上传到部署服务器。如果您想要完全部署,即一次性完成整个项目,则此脚本可以完美工作。但问题是,当我更改本地计算机上的特定文件时,现在我希望它使用ftp覆盖服务器上现有的相同文件,但它不会覆盖Bash 如何使用命令通过FTP覆盖文件?,bash,shell,ftp,ftp-client,Bash,Shell,Ftp,Ftp Client,我编写了这样一个shell脚本,通过ftp将文件上传到部署服务器。如果您想要完全部署,即一次性完成整个项目,则此脚本可以完美工作。但问题是,当我更改本地计算机上的特定文件时,现在我希望它使用ftp覆盖服务器上现有的相同文件,但它不会覆盖 MKDIR=`for directory in $FOLDERS; do echo "mkd \"${directory}\""; done` DELETE=`for file in $DFILES; do echo "delete \"${file}\"";
MKDIR=`for directory in $FOLDERS; do echo "mkd \"${directory}\""; done`
DELETE=`for file in $DFILES; do echo "delete \"${file}\""; done`
ATTACH=`for file in $FILES; do echo "put \"${file}\""; done`
IFS=$ORIGIFS
# Send updates to server
ftp -nv <<EOF
open $FTPHOST
user $FTPUSER $FTPPASS
binary
cd $FTPDIR
$MKDIR
$ATTACH
quit
EOF
我找到了答案
我的脚本中的问题陈述:
ATTACH=`for file in $FILES; do echo "put \"${file}\""; done`
在这里我创建了要上传的文件列表。但是这段代码按照@Jdamian的指示连接了每个文件名。
@谢谢你指出我的错误
解决方案:
ATTACH=`for file in $FILES
do
echo "put $file"
done`
要复制/删除/创建的文件名看起来像是两个合并的文件名。如何分隔这些文件?此文件名以单行字符串形式存储在files变量中。请在填充files变量的脚本行中过帐。
ATTACH=`for file in $FILES
do
echo "put $file"
done`