2013-04-24 2 views
4

Я создал сценарий lftp для загрузки отдельных файлов на веб-хостинг-провайдера.ls filename не работает в lftp

Вариант использования - это то, что я вызываю его из корня репозитория, поэтому относительный путь здесь одинаковый и на удаленном сервере.

#!/bin/bash 

DIRNAME=$(dirname $1) 
FILENAME=$(basename $1) 
REPO_ROOT=$(pwd) 
ABSOLUTE_PATH=${REPO_ROOT}/$1 

lftp -u user,passwd -p port sftp://[email protected] <<EOF 
cd $DIRNAME 
put $ABSOLUTE_PATH 
ls -l $FILENAME 
quit 0 
EOF 

Он работает с одной маленькой, но раздражающей ошибкой. Чтобы проверить, действительно ли он загружает файл, я положил ls -l в конец. Он терпит неудачу, и я не понимаю, почему:

ls: Access failed: No such file(functions.php) 

Я пытался использовать rels и cache flush, но тщетно. Я использую lftp 4.0.9.

ответ

5

Некоторые прибегая к помощи наконец дали результат в mail-archive

Это ограничение реализации протокола SFTP в LFTP. Он не может перечислить один файл, только конкретный каталог.

К счастью, LFTP позволяет трубы, так что

ls -l | grep "$FILENAME" 

решает эту проблему.

Смежные вопросы