0

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

请对此有所了解。提前致谢...

4

1 回答 1

2

答案在该方法的文档cwd

$sftp->cwd

返回远程当前工作目录。

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

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

/home/ftpkasi/aast-backup/

当你打电话时

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

它试图切换到目录

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

这显然不存在。

于 2013-10-10T13:48:47.683 回答