Delete files in directory using perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete files in directory using perl
# 1  
Old 01-04-2012
Delete files in directory using perl

Hello All
I am implementing my task in Perl and i found an issue.
What i want to do is to remove files from the directory which were made 20 days back using Perl script
# 2  
Old 01-04-2012
Use the below code to delete multiple files in perl.

Code:
#!/usr/bin/perl

@files = ("file1.txt","file2.txt","file3.txt");
foreach $file (@files) {
    unlink($file);
}

# 3  
Old 01-04-2012
ya thats correct but how the code will calculate that the the selected file was made 20 days back
# 4  
Old 01-04-2012
the stat function perldoc -f stat lets you know what the inode change time for a file is so combining the two we get... left as an exercise for the reader
This User Gave Thanks to Skrynesaver For This Post:
# 5  
Old 01-04-2012
Code:
perl -e 'for(<*>){((stat)[9]<(time-(20*86400)))&&unlink}'

This User Gave Thanks to balajesuri For This Post:
# 6  
Old 01-04-2012
Thanks to all
@balajesuri: can you please explain your code i didn't get it clearly
# 7  
Old 01-04-2012
Try the below code, and try to change the parameter 86400 * no of days to make it desire to the requirement.

Code:
my $dir = '/home';
opendir(DIR,$dir) || die "Can't open $dir : $!\n";
my @files = readdir(DIR); 
close(DIR);

foreach my $file(@files)
{
	my $now = time;
	my @stat = stat("$dir/$file");
	if ($stat[9] < ($now - 86400))
	{
		print "Deleting $dir/$file...";
		unlink("$dir/$file");
		print "Done.\n";
	}
}

This User Gave Thanks to Rksiva For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete files directory

amigos necesito dejar en un directorio solo los archivos del dia anterio, como puedo hacer eso con una shell Hello. Per our forum rules, all posts must be in English. We do provide translation services for posts from English to a number of languages as a benefit to users. However,... (16 Replies)
Discussion started by: tricampeon81
16 Replies

2. Shell Programming and Scripting

Script needed to delete to the list of files in a directory based on last created & delete them

Hi My directory structure is as below. dir1, dir2, dir3 I have the list of files to be deleted in the below path as below. /staging/retain_for_2years/Cleanup/log $ ls -lrt total 0 drwxr-xr-x 2 nobody nobody 256 Mar 01 16:15 01-MAR-2015_SPDBS2 drwxr-xr-x 2 root ... (2 Replies)
Discussion started by: prasadn
2 Replies

3. Shell Programming and Scripting

Delete all files if another files in the same directory has a matching occurrence of a specific word

he following are the files available in my directory RSK_123_20141113_031500.txt RSK_123_20141113_081500.txt RSK_126_20141113_041500.txt RSK_126_20141113_081800.txt RSK_128_20141113_091600.txt Here, "RSK" is file prefix and 123 is a code name and rest is just timestamp of the file when its... (7 Replies)
Discussion started by: kridhick
7 Replies

4. UNIX for Dummies Questions & Answers

Cannot delete files and directory

hello i am trying to delete some files and also some directories. However, despite having the required permissions (i m the owner), Permission is being denied. I also tried to delete using find and inode number, but again Permission was denied. :wall: I am new to unix so please dumb down... (8 Replies)
Discussion started by: curiosity
8 Replies

5. Shell Programming and Scripting

Delete all files if another files in the same directory has a matching occurence of a specific word

Hello, I have several files in a specific directory. A specific string in one file can occur in another files. If this string is in other files. Then all the files in which this string occured should be deleted and only 1 file should remain with the string. Example. file1 ShortName "Blue... (2 Replies)
Discussion started by: premier_de
2 Replies

6. Shell Programming and Scripting

delete files recursively in the specified directory

I have to write a shell script which can delete all the files and directories recursively inside the specified directory but should not delete the specified directory. Please some body help me in writing the script. (3 Replies)
Discussion started by: deepthi.s
3 Replies

7. Shell Programming and Scripting

delete all but one files in a directory

what`s the script to do that? assuming my text file is "test.txt" (10 Replies)
Discussion started by: finalight
10 Replies

8. Shell Programming and Scripting

Delete Some Old files from Particular Directory

Hi Team, I am new to scripting. I want to create a script, which needs to keep only 5 days directories and want to remove the old directory from a particular directory. Can Somebody help me with starting this script. All my directories will be created in the name <YYYYMMDD>. Thanks... (2 Replies)
Discussion started by: siva80_cit
2 Replies

9. UNIX for Dummies Questions & Answers

CRON. How to delete files within a directory

I'd like to delete ALL files on a daily basis within a directory that are over a day old. Anyone know how I can automate this through Cron as I have 146 websites to administer. I've tried... 30 02 * * * /home/myspace/tmp/webalizer -atime + 1\! -type d -exec rm -f {} \; but all i get is an... (1 Reply)
Discussion started by: southoxon
1 Replies
Login or Register to Ask a Question