#!/usr/bin/perl use 5.010; use strict; use warnings; use lib "/home/ivo/Scripts"; use UndeleteNTFS; my ($filename,$number,$directory,$device,$myuser); print "Welcome to UNDELETE, a Perl wrapper around NTFS UNDELETE !\n\n"; print "Undelete only works on NTFS filesystems, also make sure NTFSPROGS is installed.\n"; print "This script must be run as root or with the sudo command as it is required by NTFS UNDELETE.\n"; print "If your device is not yet unmounted, this Perl script will unmount it for you if possible.\n\n\n"; print "Please enter device (e.g. /dev/sdd1) or type EXIT to exit\n"; chomp($device=); die "exiting" if ($device =~m/exit/i); print"\nJust a minute, this takes some time ...... (Perl is working 4U).....\n"; my $undelete_obj = UndeleteNTFS->new(device=>$device); my @list=$undelete_obj->getundeletelist(); my $i=0; print "Number\t\tInode\tFlags\tAge\tDate\t\tSize\t\tFilename\n"; foreach (@list) { if (length($_->{size})<8) { #Print an extra tab after size if the size is a number with less then 8 positions print "Number ".$i.":\t".$_->{inode}."\t".$_->{flags}."\t".$_->{age}."\t".$_->{date}."\t".$_->{size}."\t\t".$_->{filename}."\n"; } else { print "Number ".$i.":\t".$_->{inode}."\t".$_->{flags}."\t".$_->{age}."\t".$_->{date}."\t".$_->{size}."\t".$_->{filename}."\n"; } $i++; } print "Which number to undelete, type EXIT to exit ? \n"; chomp($number=); die "exiting" if ($number =~m/exit/i); print "Which filename for undelete, type EXIT to exit ? \n"; chomp($filename=); if ($filename eq "") { print "Assuming filename = undeleted.xxx\n\n\n"; } die "exiting" if ($filename =~m/exit/i); print "Which directory, type EXIT to exit ?\n"; chomp($directory=); if ($directory eq "") { print "Assuming directory = HOME DIRECTORY\n\n\n"; } die "exiting" if ($directory =~m/exit/i); print "Which USER is owner of the undeleted file, type EXIT to exit ?\n"; chomp($myuser=); if ($myuser eq "") { print "Assuming ROOT \n\n\n"; } die "exiting" if ($myuser =~m/exit/i); print"\nJust a minute, this takes time (depending on file size) ...... (Perl is working 4U).....\n"; my @result=$undelete_obj->undeletefile( filename => $filename, number => $number, directory => $directory, user => $myuser ); print @result;