using File::stat


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using File::stat
# 1  
Old 11-08-2010
using File::stat

Hello everyone,

I need some help on a perl script. The script is to open a dir and print out the date of last modification on all files. I'm been trying this code but it doesn't work.
Code:
use File::stat;

open (D,"$ARGV[0]") or die "Can't open\n";

while (defined ($file = readdir D))
{
  next if ! -T $file;
  $last_mod = (stat($file))[9] or die"Can't stat\n";
  print"$file:\t$last_mod\n";
}

keep getting "Can't stat"!!! What did I do wrong? Appreciate any help...

Last edited by Scott; 11-08-2010 at 07:54 PM.. Reason: Please use code tags
# 2  
Old 11-08-2010
Use opendir not open, stat needs the full pathname not just the filename. Use scalar and localtime on mtime:

Code:
#!/usr/bin/perl -w
use File::stat;
$dirname = $ARGV[0];
opendir (D, $dirname) or die "Can't open\n";
while (defined($filename = readdir D ))
{
    next if ! -T $filename;
    $fullname=$dirname."/".$filename;
    $st = stat($fullname) or die "Can't stat\n";
    printf "%s\t%s\n", $filename,  scalar localtime $st->mtime;
}

# 3  
Old 11-08-2010
thx a million C, really appreciated. Just one more question:

$dirname."/".$filename => what does this do? Making a path?

---------- Post updated at 05:01 PM ---------- Previous update was at 04:31 PM ----------

Just ran the code again, the problem is it will print all files with the same date... I will try to trouble-shoot it... any suggestion is greatly appreciated...
# 4  
Old 11-08-2010
Yes, it just concatenates dirname "/" and filename to generate a pathname

Edit - Try this instead:

Code:
print "$filename:\t" . localtime($st->mtime) . "\n";


Last edited by Chubler_XL; 11-08-2010 at 09:14 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Cp: cannot stat ‘src/last??’: No such file or directory

Good day. I am trying to install the latest version of LAST program (last.cbrc.jp) on my Windows64bit using Cygwin64. I successfully downloaded it and followed the instructions on how to install it. However, when I tried to run the command "make install prefix=~", I got this error, as shown... (0 Replies)
Discussion started by: nicole_john_
0 Replies

2. UNIX for Dummies Questions & Answers

Cannot stat ‘/albiero’: No such file or directory

So on my external hard drive, I am trying to copy one folder into another folder sudo cp /albiero /home and get the error message cannot stat ‘/albiero': No such file or directory Though both folders exist drwxr-xr-x 44 root root 4096 Oct 31 15:15 albiero drwxr-xr-x 2 root ... (2 Replies)
Discussion started by: albiero
2 Replies

3. Solaris

/bin/find: stat() error <File> : No such file or directory

Hi, I am getting below error in Solaris 10 SPARC when trying to issue a search on /var/tmp partition Below is the query /bin/find /var/tmp/ -type f -atime +1 Below is the result /bin/find: stat() error <File> : No such file or directory (28 Replies)
Discussion started by: prash358
28 Replies

4. Shell Programming and Scripting

Cp: cannot stat No such file or directory

Hi Please review this script and let me know what i need to do. This is my script #!/bin/bash #SCRIPT: forms.sh #PURPOSE: Process a file line by line with redirected while-read loop. #PURPOSE: and copy the forms to the follder foldername=sample_dir mkdir -p $foldername while read... (5 Replies)
Discussion started by: Rami Reddy
5 Replies

5. UNIX for Dummies Questions & Answers

Cp: cannot stat...: no such file or directory

Please review the issue below and tell me what I need to do. I cannot copy the zip file. $ ls -l total 10 drwxrwx--- 1 root vboxsf 0 Feb 1 16:10 sf_Temp drwxrwx--- 2 root vboxsf 4096 Jan 31 17:59 sf_VBoxShared dr-xr-xr-x 6 oracle root 2048 Dec 19 09:20 VBOXADDITIONS_4.2.6_82870 $ cp -r... (2 Replies)
Discussion started by: lutus
2 Replies

6. Shell Programming and Scripting

Mv : cannot stat :no such file or directory

this is my script x=1 o=0 while do fi ];then (this check is a certain extension with a number exist) let x++ else mv /var/log/mrnet.log.1.gz /var/log/mrnet.log.$x.gz o=1 fi done mrnet.log.1.gz exist already... (1 Reply)
Discussion started by: Froob
1 Replies

7. Shell Programming and Scripting

Need file timestamp without stat command

Hi all, I want to check whether a file is not updated in last 15 minutes, for this i need to get timestamp of file, (yyyy:mm:dd:hh:mi:ss). I dont have access to STAT command :(. Please suggest a program or command to do this . Thanks, Saravana (1 Reply)
Discussion started by: sam_1210
1 Replies

8. SuSE

cp: cannot stat no such file or directory

#!/bin/ksh cp /etc/apache2/vhosts.d/orginal/test-yast2_vhost.conf-bk /etc/apache2/vhosts.d/test-yast2_vhost.conf /usr/sbin/rcapache2 graceful when i ran this script I'm getting following error. cp: cannot stat /etc/apache2/vhosts.d/orginal/test-yast2_vhost.conf-bk no such file or directory... (1 Reply)
Discussion started by: s_linux
1 Replies

9. Shell Programming and Scripting

cp: cannot stat: No such file or directory

Hi there, I need some help with cp files from one directory into several others. The code is as follows: SUB=`ls src_directory | wc -l` OUT_LOOP=$(($SUB / $MK_NUMS)) IN_LOOP=$(($SUB % $MK_NUMS)) COUNT=$MK_NUMS while ] do mkdir dst_directory$COUNT ls -1 src_directory |... (4 Replies)
Discussion started by: Krush187
4 Replies

10. Programming

Using stat() to determine file permissions

I'm having a problem verifying a directory's permissions using the stat() command. I want to flag an error condition if the directory is WRITABLE by either group or other. This is the code I'm using: if (stat(dirname,&statbuf) == -1) { fprintf(stderr,"Unable to run stat() command\n"); ... (3 Replies)
Discussion started by: kowrip
3 Replies
Login or Register to Ask a Question