| | |
newbie question regarding checking date of file
Please support our Shell Scripting advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Oct 2007
Posts: 1
Reputation:
Solved Threads: 0
Please pardon the simplicity of this question, I kind of got thrown into these responsibilities at the last minute without training.
I
I need to move a file called status10.dat to a different directory using korn scripting.
[code = korn]
cp status10.dat* /cerner/d_p19/ccluserdir
[/code]
I only want to do this if the file is equal to today's date. Is it possible to check before moving the file?
Thanks in advance
I
I need to move a file called status10.dat to a different directory using korn scripting.
[code = korn]
cp status10.dat* /cerner/d_p19/ccluserdir
[/code]
I only want to do this if the file is equal to today's date. Is it possible to check before moving the file?
Thanks in advance
•
•
Join Date: Oct 2007
Posts: 399
Reputation:
Solved Threads: 47
Hi There,
That shouldn't be a problem at all.
Depending on what you want to do you can use find to get all files created within the last 24 hours (assuming /home as your current directory):
for x in `find /home -mtime 0`
do
mv $x /cernet/d_p19/ccluserdir/.
done
you can also use the -exec option of find to do the mv for you so you'd just have a one-line find script.
Hope this helps
, Mike
That shouldn't be a problem at all.
Depending on what you want to do you can use find to get all files created within the last 24 hours (assuming /home as your current directory):
for x in `find /home -mtime 0`
do
mv $x /cernet/d_p19/ccluserdir/.
done
you can also use the -exec option of find to do the mv for you so you'd just have a one-line find script.
Hope this helps

, Mike
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
•
•
Join Date: Oct 2007
Posts: 399
Reputation:
Solved Threads: 47
Hey, I just noticed that I misread your question - you need stuff from "today" and not the last 24 hours -- sorry - maybe that other info will be useful for another project.
If you want to only delete files from today, I think the simplest way to do it - to avoid the possible issues with spacing and/or tabbing would be to write a script that took a date argument in the following format:
./yourscript "Oct 3"
or
./yourscript "Oct 24"
Note that in the "Oct 3" there are two spaces separating the month and date and that "Oct 24" only has one space separating - this is to accommodate the behavious of "ls -l" -- at least, on solaris.
yourscript would be (assuming we're running it from the directory your files are in)
#!/bin/ksh
today=$1
for x in `ls -ld *`
do
filename=`echo $x|awk '{print $1}'`
result=`echo $x |grep $today >/dev/null 2>&1`
if [ $? -eq 0 ]
then
mv $filename /cernet/d_p19/ccluserdir/.
fi
done
I tend to write the short-stuff like I think. There's probably an easier way to do it
Thanks,
, Mike
If you want to only delete files from today, I think the simplest way to do it - to avoid the possible issues with spacing and/or tabbing would be to write a script that took a date argument in the following format:
./yourscript "Oct 3"
or
./yourscript "Oct 24"
Note that in the "Oct 3" there are two spaces separating the month and date and that "Oct 24" only has one space separating - this is to accommodate the behavious of "ls -l" -- at least, on solaris.
yourscript would be (assuming we're running it from the directory your files are in)
#!/bin/ksh
today=$1
for x in `ls -ld *`
do
filename=`echo $x|awk '{print $1}'`
result=`echo $x |grep $today >/dev/null 2>&1`
if [ $? -eq 0 ]
then
mv $filename /cernet/d_p19/ccluserdir/.
fi
done
I tend to write the short-stuff like I think. There's probably an easier way to do it

Thanks,
, Mike
Last edited by eggi; Oct 29th, 2007 at 5:14 pm. Reason: misspelling again - no more edits coming - thx :)
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
•
•
Join Date: Apr 2006
Posts: 148
Reputation:
Solved Threads: 40
Shell Scripting Syntax (Toggle Plain Text)
find /path -type f -name "status10.dat*" -mtime 0 -print0 | xargs -i -0 cp "{}" /cerner/d_p19/ccluserdir
![]() |
Similar Threads
- How to Add date to file Name (Windows NT / 2000 / XP)
- Excel Macro Save as with date in file name (Visual Basic 4 / 5 / 6)
- How to print to file (Perl)
- [Question] exe to source file (C++)
- Newbie Question - How to generate a link (PHP)
- Hosts file question about Gorilla's explanation (Viruses, Spyware and other Nasties)
- inputing system("date /t") and system("time /t") into a file (C++)
- EASY question? checking for line feed (return) in a html file with C++ (C++)
Other Threads in the Shell Scripting Forum
- Previous Thread: call the constructor of java class from script
- Next Thread: su - postgres within shell script
| Thread Tools | Search this Thread |





