Как перезаписать файлы через FTP с помощью команды?

Я написал такой сценарий оболочки, который загружает файлы по ftp на мой сервер развертывания. Этот сценарий отлично работает, если вам нужно полное развертывание, то есть весь проект за один раз. но проблема в том, что я изменяю конкретный файл на локальном компьютере, и теперь я хочу, чтобы он перезаписывал существующий файл на сервере, используя ftp, который он не перезаписывает.

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

Где: FOLDERS: содержит каталоги для создания, DELETE - это строка, содержащая список удаленных файлов, ATTACH - это список файлов, которые были изменены и должны быть перезаписаны на сервере, которые существуют.

После этого, когда я запускаю его второй раз после модификации существующих файлов:

       local: ./testproject/trunk/test.php ./svnupdate.txt remote: ./testproject/trunk/test.php ./svnupdate.txt
       local: ./testproject/trunk/test.php ./svnupdate.txt: No such file or directory

person Deep Shah    schedule 27.11.2014    source источник
comment
Имя файла для копирования / удаления / создания выглядит так, как будто два имени файла соединены.   -  person Jdamian    schedule 27.11.2014
comment
Как разделить эти файлы? Имена этих файлов хранятся в переменной FILES в виде однострочной строки.   -  person Deep Shah    schedule 27.11.2014
comment
Выложите, пожалуйста, строки скрипта, в которых заполнена переменная FILES.   -  person Jdamian    schedule 27.11.2014


Ответы (1)


Я нашел свой ответ.

Постановка проблемы в моем скрипте:

ATTACH=`for file in $FILES; do echo "put \"${file}\""; done`

где я создаю список файлов для загрузки, но этот код объединяет имена каждого файла, как сказал @Jdamian. @Jdamian спасибо, что указал на мою ошибку.

Решение:

ATTACH=`for file in $FILES
do
    echo "put $file"
done`
person Deep Shah    schedule 27.11.2014