Reputation: 1209
How can I delete all the files in a directory, (without deleting the directory) in Perl?
My host only allows up to 250,000 "files" and my /tmp folder fills that 250,000 qouta fast with all the session cookies going on. I cannot delete the /tmp folder in this situation. I am only permitted to delete the files within.
EDIT:
FTP clients and File managers don't exactly want to open up the folder... I assume it's because of the massive amount of files in it..
Upvotes: 10
Views: 24802
Reputation: 164
You can use this. You need to use glob for removing files:
unlink glob "'/tmp/*.*'";
These extra apostrophes are needed to handle filenames with spaces as one string.
Upvotes: 14
Reputation: 385897
my $errors;
while ($_ = glob('/tmp/* /tmp/.*')) {
next if -d $_;
unlink($_)
or ++$errors, warn("Can't remove $_: $!");
}
exit(1) if $errors;
Upvotes: 25