【问题标题】:ls filename does not work in lftpls 文件名在 lftp 中不起作用
【发布时间】:2013-04-24 07:09:58
【问题描述】:

我创建了一个 lftp 脚本来将单个文件上传到网络托管服务提供商。

用例是我从仓库根目录调用,所以这里和远程服务器的相对路径是一样的。

#!/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

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

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

我尝试使用relscache flush,但没有成功。我正在使用 lftp 4.0.9。

【问题讨论】:

    标签: unix lftp


    【解决方案1】:

    一些谷歌搜索终于在mail-archive 中给出了结果

    这是 lftp 中 SFTP 协议实现的限制。这不可以 列出单个文件,仅列出特定目录。

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

    ls -l | grep  "$FILENAME"
    

    解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 2023-03-16
      • 2016-07-30
      • 2016-07-02
      • 2014-08-19
      • 2023-04-01
      相关资源
      最近更新 更多