我正在使用Net::SFTP。我的目的是列出这些文件以及它们的修改日期。我可以列出日期为UTC格式的文件。我需要EDT格式的。是否有可用的设置?
目前,我在Linux上使用Perl5。
my $sftp = Net::SFTP->new($host, %args) or die "Cannot connect to $@";
$sftp->ls('.' , sub { print $_[0]->{longname}, "\n" });发布于 2012-08-01 13:28:10
如果我的理解是正确的,清单中的longName字段是服务器渲染的,并且已过时/不推荐使用。SFTP提供了一个结构,其中包含每个目录条目的数据,时间以UTC格式列出。
来自文档:
如果指定了$subref,则对于目录中的每个条目,将调用$subref并为其提供一个具有三个键的散列引用: filename,目录列表中条目的名称;long name,“长”列表中的条目,如ls -l;以及a,一个Net::SFTP::Attributes对象,它包含条目的文件属性(atime、mtime、权限等)。
所以你需要获取一个对象,并使用它的atime和mtime字段。一旦你有了它们,如果你需要一个固定的时区,将它们转换成当地时区应该是微不足道的。
https://stackoverflow.com/questions/11752691
复制相似问题