我知道之前已经提出过这样的问题,但我想我可能已经迷失了,试图理解答复中提供的例子。所以我再次在这里问。
我必须从远程计算机上的特定文件夹中收集文件列表(仅限绝对文件名)。
在我的Linux机器上:
opendir
- 在本地工作。我希望它能够远程工作。
use Net::FTP
- 可以正常工作但FTP已禁用。
use Net::SFTP
- 可以正常工作但是没有安装Net :: SFTP。
我想要一些方法来获取此信息,因为我必须使用sftp或ssh。
my $cmd = "ssh user\@host 'find x/y/z -type f'";
my @expectedOutputHere = system($cmd);
但$expectedOutputHere
不包含文件列表(作为输出)。
一旦我有输出,我打算使用File :: Basename :: basename来获取绝对名称。但是,我如何首先在数组中收集输出?
答案 0 :(得分:4)
my @expectedOutputHere = `$cmd`;
manual说:The collected standard output of the command is returned
,In list context, returns a list of lines
。
对于system()
,手册指定:The return value is the exit status of the program
。
答案 1 :(得分:1)
试试这个:
my $cmd = "ssh user\@host 'find x/y/z -type f'";
my @expectedOutputHere = `$cmd`;
chomp(@expectedOutputHere);
print Dumper @expectedOutputHere;