Unable to unlink files perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Unable to unlink files perl
# 1  
Old 08-08-2014
Bug Unable to unlink files perl

Hi,

I have a dir and some files as below (all have full perm)

Code:
drwxrwxrwx 2 sam sam 4096 Aug  8 04:31 /home/sam/test

$ ll /home/sam/test
-rwxrwxrwx 1 sam sam 0 Aug  8 04:31 b1_2013_file.txt
-rwxrwxrwx 1 sam sam 0 Aug  8 04:31 c1_2014_file.txt

I want to go to this directory and delete the files matching "_2013_"

For this I am using the below perl code snippet
Code:
 opendir ( DIR, "/home/sam/test" ) || die "$!";
    foreach my $file ( readdir DIR ) {
        print "$file\n";
        if ( $file =~ m#_2013_#){
            print "Matched : $file\n";
            unlink $file || die "Can't remove $file, $!";
        }
    }
    closedir DIR;

Strangely it is able to print the filenames but not unlinking, also it does not gives any error message
Code:
.
..
b1_2013_file.txt
Matched : b1_2013_file.txt
c1_2014_file.txt

$ ll /home/sam/test
-rwxrwxrwx 1 sam sam 0 Aug  8 04:31 b1_2013_file.txt
-rwxrwxrwx 1 sam sam 0 Aug  8 04:31 c1_2014_file.txt

my perl version and machine info is as below
Code:
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
Red Hat Enterprise Linux Server release 6.4 (Santiago)

help!!!

Thanks
Sam
# 2  
Old 08-08-2014
You haven't supplied the path to the file in the unlink command.
# 3  
Old 08-08-2014
Hi mate,
You need to provide the *absolute* path to the unlink command. Now, your script processes files from a remote directory, but you provide your unlink command the filename only. Try this:
Code:
my $dir="/home/sam/test";

 opendir ( DIR, "$dir" ) || die "Can't open directory, $!";
    foreach my $file ( readdir DIR ) {
        print "$file\n";
        if ( $file =~ m#_2013_#){
            print "Matched : $file\n";
            unlink "$dir/$file" or die $!;
        }
    }
    closedir DIR;

Hope this helps.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Unable to locate Perl

Hi, On my server : Linux mymac 2.6.32-431.23.3.el6.x86_64 #1 SMP Wed Jul 16 06:12:23 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux I tried to load successfully the Perl module inside my Apache by adding the following in my httpd.conf LoadModule cgid_module modules/mod_cgid.so Restarted... (0 Replies)
Discussion started by: mohtashims
0 Replies

2. Shell Programming and Scripting

Unlink multiple files

I wish to unlink multiple links, but man pages shows unlink - call the unlink function to remove the specified file let's linked are in number sequence and I'm doing unlink `echo {1..500}` This fails.. Is their any other command to execute it or I need to call the unlink function that... (1 Reply)
Discussion started by: posix
1 Replies

3. Shell Programming and Scripting

Perl CGI : unable to download the excel sheet from perl cgi page

Hi All, I have written an cgi perl script that displays an image(Excel image) and when clicked on that Image I need to download a excel sheet. I made sure that excel sheet exists in the folder with the given name but still I am not able to download the sheet. print "<center><table... (2 Replies)
Discussion started by: scriptscript
2 Replies

4. Shell Programming and Scripting

Unlink and copy actual file

Hello, I have a set of directories, which has inside them, symbolic links to some files. What i would like to do is to covert the links into actual files, i.e. remove the link and copy the actual file here... I tried to see unlink command but i think all it does is delete the link, is... (2 Replies)
Discussion started by: prasbala
2 Replies

5. Shell Programming and Scripting

How to Unlink all files in a directory?

I had a directory like A/B/C and these are all what I did. cd A/B/C ln -s some_path/some_sub_dir/C/* . After this, I have around say 1000 files linked to my A/B/C directory. How can unlink all those files at one shot? The unlink command requires filename as an argument but what I need is to... (1 Reply)
Discussion started by: dahlia84
1 Replies

6. Solaris

Cron could not unlink FIFO

We are using Solaris 10 on tiny box. My issue is after server panic cron is not coming up, I've tried to manually restart cron but no luck. # cron stop cron could not unlink FIFO: no such file or directory ! cannot create fifo queue Thu Dec 17 11:20:17 2009 ! ******* CRON ABORTED *******... (5 Replies)
Discussion started by: patidarv
5 Replies

7. Solaris

Accidentally did a unlink inet

I was trying to remove a symbolic link of /etc/hosts to /etc/inet/hosts well i forgot the command and in the /etc directory i did unlink inet and now i can not get into inet and it does not exist in /etc 1) what do i do to fix the inet directory 2) how do i link /etc/hosts to... (1 Reply)
Discussion started by: deaconf19
1 Replies

8. Shell Programming and Scripting

perl unlink question

Hi, I have a two lines of code both intend to perform the same task. unlink $CtrFile; system ("rm $CtrFile"); Both of which try to delete a certain file. However when I use the unlink command the file does not get deleted. When I use the "rm" system... (2 Replies)
Discussion started by: jerardfjay
2 Replies

9. UNIX for Dummies Questions & Answers

mv: cannot unlink ????

Hello all, I have a script which runs every 15 minutes and moves all but latest 10 files from a directory (A) to Directory (B). Most of the times this job runs fine but sometimes it is giving "mv: cannot unlink {Target Directory name } : Permissions denied." Any help about this error msg... (1 Reply)
Discussion started by: super_duper_guy
1 Replies

10. UNIX for Advanced & Expert Users

link and unlink , urgently...

Hi all I did something incorrectly about link command. I try to make a link from a sub-dir to root dir, but I use the following command: link / zzz the result is sub-dir "zzz" was linked to "/" Then I want to remove the "zzz" by using unlink command: unlink zzz It say that "Device... (1 Reply)
Discussion started by: umonk
1 Replies
Login or Register to Ask a Question