【问题标题】:Is there any way to get the date modified from Net::SSH or NET::SFTP commands in ruby?有没有办法从 ruby 中的 Net::SSH 或 NET::SFTP 命令获取修改日期?
【发布时间】:2011-02-10 07:53:00
【问题描述】:
有没有一种简单的方法可以使用 Net::SFTP 获取文件的修改日期?
如果能够做到这一点,那就太好了:
Net::SFTP.start('some_server') do |sftp|
sftp.dir.glob('*').each do |file|
puts file.mtime
end
end
但这是不可能的(据我所知)。
伯恩斯。
【问题讨论】:
标签:
ruby-on-rails
ruby
ssh
sftp
net-sftp
【解决方案1】:
您的示例代码几乎就在那里,您只需要使用 file.attributes.mtime 之前的 file.mtime。
另外,我猜问题中的代码只是一个示例,但为了执行它,您还需要将用户名和密码传递给start,并将路径和模式传递给@ 987654325@。所以一个可行的例子是:
Net::SFTP.start('some_server', 'mike', :password => 'secret') do |sftp|
sftp.dir.glob('.', '*').each do |file|
puts file.attributes.mtime
end
end
mtime 返回的值将是自纪元以来的秒数,因此您可能希望将其传递给 Time.at 以将其转换为 Time 对象。
如果你很好奇,其他以相同方式可用的属性是:
permissions
uid
gid
size
-
atime(上次访问时间)