Adding date and time to file name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding date and time to file name
# 1  
Old 11-15-2010
Adding date and time to file name

Hi All,

i wanted to add date and time to the file names in the same directory so lets say a file in the directory is test.txt then after running the shell script it should be test-15-11-2010.txt.

So I used the following script which works,
Code:
#!/bin/bash

thetime=`date +%Y-%m-%d--%H:%M:%S` #
for i in *.txt
do 
      mv $i ${i%.txt}$(date "+_%Y%m%d.txt")
done

But it does work only for .txt files I want to modify it so that it can take any file extension.

Thank you.

Last edited by Scott; 11-15-2010 at 02:49 AM.. Reason: Please use code tags
# 2  
Old 11-15-2010
You could use (assuming this shell script is at the path where you need to add the date and time )
Code:
for i in *

or to be more precise
Code:
for i in *.*

As the former one would change the name of the sub-directory if its present in the current working dir.
# 3  
Old 11-15-2010
yea thankx for reply.. but yea that i could figure out but the main part is.
Code:
mv $i ${i%.txt}$(date "+_%Y%m%d.txt")"

here i have hard coded .txt.. that is what i want to change..

Last edited by Scott; 11-15-2010 at 02:50 AM.. Reason: Code tags
# 4  
Old 11-15-2010
Store the file's extension in a variable before mv command and substitute in the variable later while using mv command.

Code:
#!/bin/bash

thetime=`date +%Y-%m-%d--%H:%M:%S` #
for i in *.*
do 
	extn=${i##*.} # save the extension of the file
	mv $i ${i%.*}$(date "+_%Y%m%d.${extn}")
done

This User Gave Thanks to michaelrozar17 For This Post:
# 5  
Old 11-15-2010
awesome! thankx mate! it did work!

Sorry I am a beginner in shell. I wanted to handle files without extension as well... as of now it works for text.txt or anything which has file extension but if some file name is just "debug" it wont work for that.. So i tried to write another for loop with just * instead of*.* but ofcourse it dint work.. any ideas how should i proceed.
thank you,.
# 6  
Old 11-15-2010
Quote:
Originally Posted by michaelrozar17
Store the file's extension in a variable before mv command and substitute in the variable later while using mv command.
Why store it? (but it's preferable to store the date string to avoid calls to date in the iteration.
Code:
#!/bin/bash
D=$(date +%d-%m-%Y)
for F in *.*
do 
	mv $F ${F%.*}-$D.${F##*.}"
done


Last edited by frans; 11-15-2010 at 04:18 AM.. Reason: extra ')' removed
This User Gave Thanks to frans For This Post:
# 7  
Old 11-15-2010
Quote:
Originally Posted by frans
Why store it? (but it's preferable to store the date string to avoid calls to date in the iteration.
Code:
#!/bin/bash
D=$(date +%d-%m-%Y)
for F in *.*
do 
	mv $F ${F%.*}-$D.${F##*.}")
done

how about for files without any extension.. like lets say just "debug" and not "debug.txt" ? any idea?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Adding time to date time in UNIX shell scipting

I needed some help in adding a duration (in seconds) to a start time (in hhmmss format) and a start date (in mmddyy format) in order to get an end date and end time. The concept of a leap year is also to be considered while incrementing the day. The code/ function that I have formed so far is as... (3 Replies)
Discussion started by: codehelp04
3 Replies

2. Shell Programming and Scripting

Adding date to file

I want this: 0.0230769,0.407692,0.307692,0,0.1,1.4,1,0,ADD DATE HERE, im getting this: 11/02/12 0.00192308,0.0269231,0.0192308,0,0.1,1.4,1,0, my script: #!/bin/ksh DIR=/export/home/yani_m/scripts/scrip_out_put/ DIR2=/export/home/yani_m/scripts/scrip_out_put/calc/ Date=$1... (1 Reply)
Discussion started by: LucyYani
1 Replies

3. UNIX for Dummies Questions & Answers

Adding hours and minutes to current date (Only to date not to time)

Hi, I want to add some hours and minutes to the current date. For example, if the current date is "July 16, 2012 15:20", i want to add 5 hours 30 minutes to "July 16, 2012 00:00" not to "July 16, 2012 15:20". Please help. Thanks! (4 Replies)
Discussion started by: manojgarg
4 Replies

4. UNIX for Dummies Questions & Answers

[Solved] Adding time stamp to file name

I have the awk awk -F\* '$1=="ST",$1=="SE"{if($1=="ST"){close(f);f="sample" ++i} ; $1=$1; print>f}' OFS=\| <filename> How to add the time stamp to the file name mentioned as "sample" Please view this code tag video for how to use code tags when posting code and data. (6 Replies)
Discussion started by: atlantis_yy
6 Replies

5. Shell Programming and Scripting

adding a date to the last of each file name

i have some files in my directory....wit names say aaa, bbb, ccc,,,,, i want to make loop so that for each file name,,,,,,a sysdate should be appended in the end.........and the files should look like aaa_20100331 i knw date can be appended as `date +"%Y%m%d"` but m nt able to make a loop. ... (2 Replies)
Discussion started by: amitpta
2 Replies

6. UNIX for Dummies Questions & Answers

Adding Date & time stamps to filename

I need to edit the file name with date and time while writing the script. please help. (1 Reply)
Discussion started by: manish.s
1 Replies

7. UNIX for Dummies Questions & Answers

adding date to a file during FTP

I have a very basic question here. I have to FTP a file from a AIX unix box to a windows server. But during that I have to rename the file. For example: I have to FTP a file called ORDER.TXT from unix and it should go as ORDER_20090101.TXT on to the windows server. It is not possible to... (5 Replies)
Discussion started by: vara32
5 Replies

8. UNIX for Dummies Questions & Answers

Adding date and time to a log file

Morning all Im hoping you can help me. We have a nice new oracle server :( and are needing to move some files around for EDI and BACS. The server runs windows but has an app called MKS toolkit installed which give unix commands. (Needed for the oracle stuff) I have had a go using dos commands... (2 Replies)
Discussion started by: ltodd2
2 Replies

9. Shell Programming and Scripting

problem with displaying date and adding time

Hi, I have a log file with contents like 81.49.74.131 - - 81.49.74.131 - - 116.112.52.31 - - 116.112.52.31 - - I need an output like this 81.49.74.131 14/Sep/2008 Time duration: 00:06:00 116.112.52.31 15/Sep/2008 Time duration: 00:00:01 Please anyone suggest a script for this.... (1 Reply)
Discussion started by: FuncMx
1 Replies

10. Shell Programming and Scripting

Processing a log file based on date/time input and the date/time on the log file

Hi, I'm trying to accomplish the following and would like some suggestions or possible bash script examples that may work I have a directory that has a list of log files that's periodically dumped from a script that is crontab that are rotated 4 generations. There will be a time stamp that is... (4 Replies)
Discussion started by: primp
4 Replies
Login or Register to Ask a Question