【问题标题】: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(上次访问时间)

    【讨论】:

    • 漂亮!并很好地抓住了其他示例事故。谢谢迈克!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多