0

我有一个名为“MyDir”的目录。我正在使用 Ubuntu 操作系统。我有 7 个具有各种扩展名的文件。我想编写一个 Ruby 程序来为每个文件添加一个时间戳。

4

2 回答 2

1

您需要获取目标目录中所有文件的列表(请参阅 参考资料Dir.glob(...)),然后以“追加模式”(请参阅​​参考资料)打开文件File.open(...)并写入时间戳。例如:

def add_timestamps(dir, timestamp=Time.now)
  Dir[File.join(dir, '*')].each do |filename|
    File.open(filename, 'a') { |f| f.puts(timestamp) }
  end
end

add_timestamps('MyDir') # OR...
add_timestamps('MyDir', Time.parse('2001-02-03T04:05:06Z'))
于 2012-07-27T14:44:06.017 回答
0

如果要将其添加到文件名中

t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") }
# or dont add timestamp on files that are ending with 10 digits
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") unless /\.\d{10}$/.match(x) }

#if you want to add it to the end of the file's content
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.open(x,'a') { |f| f.write("\n#{t}\n") } }
于 2012-07-27T12:40:32.537 回答