免責事項:これは過度の可能性がありますが、反対側では実装が速く安定している可能性があります。
directory_watcherと呼ばれるルビライブラリがあり、ディレクトリの変更を監視できます。
は、このような
#!/usr/bin/env ruby
require 'rubygems'
require 'directory_watcher'
dw = DirectoryWatcher.new '.'
dw.add_observer do
|*args| args.each do |event|
puts event
end
end
dw.start
gets # when the user hits "enter" the script will terminate
dw.stop
ような単純なスクリプトは、あなたが始めることができます。ここで変更された(または削除された、または追加された)ファイル名はstdoutに出力されます。ここで
はfile1.txt
、file2.txt
、file3.txt
を監視しますexample script、です。それらのいずれかが変更されるたびに、それらはfiles-combined.txt
に連結されます。
#!/usr/bin/env ruby
require 'rubygems'
require 'directory_watcher'
dw = DirectoryWatcher.new '.'
dw.interval = 1.0
dw.add_observer do |*args|
args.each do |event|
if /file\d/ =~ event.path
`cat file1.txt file2.txt file3.txt > files-combined.txt`
puts "#{Time.now.strftime("%I:%M:%S")} \
Created files-combined.txt (since #{event.path} #{event.type})"
end
end
end
dw.start
gets # when the user hits "enter" the script will terminate
dw.stop
出力は次のようになります:あなたが尾を利用することができるかもしれない
$ ruby 7083085.rb
08:55:47 Created files-combined.txt (since ./file3.txt added)
08:55:47 Created files-combined.txt (since ./file1.txt added)
08:55:47 Created files-combined.txt (since ./file2.txt added)
08:55:54 Created files-combined.txt (since ./file1.txt modified)
08:55:57 Created files-combined.txt (since ./file1.txt modified)
が役に立ちます。みくありがとう! – jaysonp