#!/usr/bin/perl
use strict;
use warnings;
use Linux::Inotify2;
$|++;
my $inotify = new Linux::Inotify2
or die "Unable to create new inotify object: $!";
1 while $inotify->poll;
$inotify->watch("/tmp/j", IN_ACCESS | IN_CLOSE_WRITE, sub {
my $event = shift;
my $name = $event->fullname;
print "$name was accessed\n" if $event->IN_ACCESS;
print "$name is no longer mounted\n" if $event->IN_UNMOUNT;
print "$name is gone\n" if $event->IN_IGNORED;
print "$name is new\n" if $event->IN_CLOSE_WRITE;
print "events for $name have been lost\n" if $event->IN_Q_OVERFLOW;
print "jjjj\n";
$event->w->cancel;
}) or die "watch creation failed: $!";
####
$ inotifywatch -v -e access -e modify -t 20 -r /tmp/j
Establishing watches...
Setting up watch(es) on /tmp/j
OK, /tmp/j is now being watched.
Total of 1 watches.
Finished establishing watches, now collecting statistics.
Will listen for events for 20 seconds.
total modify filename
18 18 /tmp/j/
####
#!/usr/bin/perl
use strict;
use warnings;
use Linux::Inotify2;
$|++;
my $inotify = new Linux::Inotify2
or die "Unable to create new inotify object: $!";
$inotify->watch("/tmp/j", IN_ACCESS | IN_CLOSE_WRITE, sub {
my $event = shift;
my $name = $event->fullname;
print "$name was accessed\n" if $event->IN_ACCESS;
print "$name is no longer mounted\n" if $event->IN_UNMOUNT;
print "$name is gone\n" if $event->IN_IGNORED;
print "$name is new\n" if $event->IN_CLOSE_WRITE;
print "events for $name have been lost\n" if $event->IN_Q_OVERFLOW;
print "jjjj\n";
# $event->w->cancel;
}) or die "watch creation failed: $!";
1 while $inotify->poll;