不能搜索到相对主目录 (perl) Net::SFTP::Foreign



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

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

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

答案在 cwd 方法的文档中:

$sftp->cwd

返回远程当前工作目录。

将相对远程路径传递给此包上的任何方法时,此目录用于编写绝对路径。

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

/home/ftpkasi/aast-backup/

当你打电话时

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

它尝试更改为目录

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

这显然不存在。

最新更新