加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – ls filename在lftp中不起作用

发布时间:2020-12-15 21:16:55 所属栏目:安全 来源:网络整理
导读:我创建了一个lftp脚本,将单个文件上传到Web托管服务提供商. 用例是我从存储库根目录中调用它,因此这里和远程服务器中的相对路径是相同的. #!/bin/bashDIRNAME=$(dirname $1)FILENAME=$(basename $1)REPO_ROOT=$(pwd)ABSOLUTE_PATH=${REPO_ROOT}/$1lftp -u us
我创建了一个lftp脚本,将单个文件上传到Web托管服务提供商.

用例是我从存储库根目录中调用它,因此这里和远程服务器中的相对路径是相同的.

#!/bin/bash

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

lftp -u user,passwd -p port sftp://user@hosting <<EOF
cd $DIRNAME
put  $ABSOLUTE_PATH 
ls -l $FILENAME
quit 0
EOF

它有效,有一个小而烦人的bug.为了检查它是否真的上传了文件,我最后放了一个ls -l.它失败了,我不明白为什么:

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

我试图使用rels和缓存刷新但是徒劳无功.我正在使用lftp 4.0.9.

解决方法

一些谷歌搜索终于在 mail-archive结果

It is a limitation of SFTP protocol implementation in lftp. It cannot
list a single file,only a specific directory.

幸运的是,lftp允许管道,所以

ls -l | grep  "$FILENAME"

解决了这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读