2013-04-24 2 views
4

단일 파일을 웹 호스팅 제공 업체에 업로드하는 lftp 스크립트를 만들었습니다.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) 

내가 relscache flush하지만 헛된을 사용했습니다. lftp 4.0.9를 사용하고 있습니다.

답변

5

일부 인터넷 검색은 마지막으로 그것은 lftp가에서 SFTP 프로토콜 구현의 제한 사항입니다 mail-archive

에 결과를 주었다. 은 특정 파일 만 나열 할 수 있으며 특정 디렉토리 만 나열 할 수는 없습니다.

다행히, lftp가 파이프를 할 수 있습니다, 그래서

ls -l | grep "$FILENAME" 

문제를 해결합니다.