无法setcwd到相对主目录(perl)Net :: SFTP :: Foreign

时间:2013-10-10 11:35:36

标签: perl bash scripting ftp sftp

我正在尝试通过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

请向我们展示一些亮点。提前谢谢......

1 个答案:

答案 0 :(得分:1)

答案在cwd方法的documentation中:

  

$ sftp-> CWD

     

返回远程当前工作目录。

     

当相对远程路径传递给此程序包的任何方法时,此目录用于组成绝对路径。

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

/home/ftpkasi/aast-backup/

当你打电话

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

它尝试更改到目录

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

显然不存在。