【问题标题】:Can not setcwd to relative home directory (perl) Net::SFTP::Foreign不能将 cwd 设置为相对主目录 (perl) Net::SFTP::Foreign
【发布时间】:2013-10-18 03:38:10
【问题描述】:

我正在尝试通过 SFTP 访问远程服务器。我为此使用 Net::SFTP::Foreign。当我尝试将目录更改为用户的主目录时出现问题。它不允许像在 shell 中那样更改目录。

cd ~
cd ~/folder

我的perl代码如下。

 $sftp->setcwd("~/aast-backup/$backup_type") or die "unable to change cwd: " . $sftp->error;

显示错误

unable to change cwd: Couldn't get realpath for remote '/home/ftpkasi/aast-backup/~/aast-backup/differential

请对此有所了解。在此先感谢...

【问题讨论】:

    标签: perl bash scripting ftp sftp


    【解决方案1】:

    答案在documentationcwd 方法中:

    $sftp->cwd

    返回远程当前工作目录。

    当一个相对远程路径被传递给这个包上的任何方法时,这个目录被用来组成绝对路径。

    因此,您传递给setcwd 的相对路径将附加到您的初始cwd。您可以在收到的错误消息中看到这一点。最初的cwd

    /home/ftpkasi/aast-backup/
    

    当你打电话时

    $sftp->setcwd("~/aast-backup/$backup_type")
    

    它试图切换到目录

    /home/ftpkasi/aast-backup/~/aast-backup/differential
    

    这显然不存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 2012-03-20
      相关资源
      最近更新 更多