Script sortof half-working?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script sortof half-working?
# 1  
Old 02-18-2009
Script sortof half-working?

I have directories full of files that contain dates and times in their names in the format YYYYMMDDhhmm. So like, one of the files is named 199407271609 with no file extension.

I have this script searches a given directory and changes all creation dates of the files to match the date in their name:

Code:
#! /bin/zsh

for filename in `ls $1`
do
touch -t $filename $1/$filename;
done

The script changes the creation dates correctly, but the only problem is, it's ignoring the hours and minutes part and making all the creation times 12:00 AM. What am I missing here? Any help greatly appreciated.
# 2  
Old 02-18-2009
I'm not sure why you're getting the behavior you're seeing, but
the first thing I do when having trouble in a 'for' loop, is to
make sure the for variable has my expected result in it.

So if you do this:
Code:
for $filename in `ls $1`
do
  echo $filename
done

is $filename what you expect for all files? Is it preceded
with the directory information? That might make using it
as your time parameter for the -t in 'touch' rather difficult.
# 3  
Old 02-18-2009
Code:
for filename in `ls $1`
do
touch -r  reference_file_name $1/$filename;
done

Is that what you mean? use a reference file for filetimes?
# 4  
Old 02-18-2009
Since you didn't provide an example of output I will just take a stab at it.

The example you provide is dated from 1994 - any file that is modified over 6 months ago will show the year when doing an ls -l and not the time.

>ls -l 199407271609
-rw-r--r-- 1 jrr 0 Jul 27 1994 199407271609

>ls -l 199407271609
-rw-r--r-- 1 jrr 0 Feb 18 11:02 199407271609

Also, your system could have multiple versions of touch as mine does - /usr/bin/touch and /usr/ucb/touch both having their own personality.

John
# 5  
Old 02-18-2009
Quote:
Originally Posted by jrothlisberger
The example you provide is dated from 1994 - any file that is modified over 6 months ago will show the year when doing an ls -l and not the time.

>ls -l 199407271609
-rw-r--r-- 1 jrr 0 Jul 27 1994 199407271609

>ls -l 199407271609
-rw-r--r-- 1 jrr 0 Feb 18 11:02 199407271609
Bingo! I'm an idiot, thanks for pointing that out. I was indeed looking at output that was saying 00:00 for the times. I tested this by creating a file like the one in my original example with a random date and time from like a month ago, and it shows up correctly.

Thanks everybody sorry!
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. AIX

Half part of devices is in defined mode

I have an old p5 570 ibm server that consists of two enclosure and make by FC1847 cable, single 8 processors server. So, after one part of it, accidentally was turned off, I lost all devices from it. Now they all in defined mode, for example: dodo:/# lsdev -Cc processor proc0 Available 00-00... (8 Replies)
Discussion started by: mcgvaer
8 Replies

2. Ubuntu

How to creat a half-triangle in bash(Ubuntu)?

how to create a half-triangle like this and that will accept an input from the user, Dimension of the triangle will be based on the users input. example: enter the dimension: 5 ***** -**** --*** ---** ----* thankyou (3 Replies)
Discussion started by: carljoses
3 Replies

3. UNIX for Dummies Questions & Answers

[SOLVED] Only half my script runs

Hello out there, I got this script that runs partly fine by my crontab. Problem is it gets to the sleep 300(which should be 5 minutes right?) part and never runs the rest of the scripts past that. All individual scripts run just fine. My var/mail file only shows it up to the " echo "Loader Stop... (3 Replies)
Discussion started by: vsekvsek
3 Replies

4. Solaris

Steps to reestablish SRDF which is half split

HI Guys, Can you please let me know the procedure to reestablish the SRDF which is half split, as you can see from the below O/P that one of the device is synchronized and other devices are in split mode Source (R1) View Target (R2) View MODES... (2 Replies)
Discussion started by: ravijanjanam12
2 Replies

5. Shell Programming and Scripting

Script not working in cron but working fine manually

Help. My script is working fine when executed manually but the cron seems not to catch up the command when registered. The script is as follow: #!/bin/sh for file in file_1.txt file_2.txt file_3.txt do awk '{ print "0" }' $file > tmp.tmp mv tmp.tmp $file done And the cron... (2 Replies)
Discussion started by: jasperux
2 Replies

6. Shell Programming and Scripting

Script is not working from cron while working manually

Hello, I am facing a very strange problem when I run my script manuallu ./Fetchcode which is using to connect with MKS integrity from linux end it workks fine but when I run it from cron it doesn't work.Can someone help me 1) How could I check my script when it is running from cron like... (3 Replies)
Discussion started by: anuragpgtgerman
3 Replies

7. Programming

[C] Is there a way to clean half screen?

Hi, I wrote a program for Windows environment. It shows a menu to choice some operations to do. Once an operation is done, it cleans the screen with a system("cls") call, and the menu is shown again. I'd like to just clean half screen, so the program doesn't need to call again the print menu... (5 Replies)
Discussion started by: Luke Bonham
5 Replies

8. UNIX for Dummies Questions & Answers

Internet half-broken

I have an odd problem with my internet connection. I think it's software not hardware, but I'm not even certain of that. My best guess is that it relates to my recent installation of KVpnc. I can't connect to most websites: no ping, nothing in the browser. But other websites I can connect to... (7 Replies)
Discussion started by: CRGreathouse
7 Replies
Login or Register to Ask a Question