我希望检查给定的路径是否存在,或者是Perl中另一个站点服务器中的目录。我的代码如下。
my $destination_path = "<path>";
my $ssh = "usr/bin/ssh";
my $user_id = getpwuid( $< );
my $site = "<site_name>";
my $host = "rsync.$site.com";
if ($ssh $user_id\@$host [-d $destination_path]){
print "Is a directory.\n";
}
else{
print "Is not a directory.\n";
}
我确定我的代码是错误的,因为我根据从另一个问题看到的bash示例修改了代码,但是我不知道如何解决它。谢谢大家的帮助。
答案 0 :(得分:2)
table.has_table
是命令的名称,必须与命令行上的其他单词分开。因此,只需使用更多空间:
[
要实际执行此命令,您将需要使用内置的system
函数。 $ssh $user\@$host [ -d $destination_path ]
执行命令成功后返回0(请参阅链接中的文档)
system
答案 1 :(得分:0)
通过SFTP访问远程文件系统:
use Net::SFTP::Foreign;
$sftp = Net::SFTP::Foreign->new("rsync.$site.com");
if ($sftp->test_d($destination_path)) {
"print $destination_path is a directory!\n";
}