Help answer threads with 0 replies.
Go Back > Forums > Non-*NIX Forums > Programming
User Name
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.


  Search this Thread
Old 07-12-2010, 09:08 PM   #1
Registered: May 2009
Posts: 181
Blog Entries: 9

Rep: Reputation: 15
BASH: Keep original mod date of a file and 'date' it back to same file?

I would really like to preserve a file's original modified date and pass it back to the file as the same attribute after a script has worked on it. I get a lot of JPEG files from different places on the Net which I either turn around and upload or burn to disk, and having the "original" date of either download or last mod in a graphics app would be for me, in the long run, a lot more helpful when deciding, for instance, which files to "recycle" or pass on backing up more than once.

I've tried doing this on my own every now and then. Where I run into problems is that it appears "stat" and "date" use different formats for date information, and I can't seem to puzzle out how to "translate" one to the other satisfactorily for the latter command.

Just to give an example:
stat foo.jpg |grep Modify gives me
Modify: 2010-07-12 06:28:56.890625000 -0400

Passing that string as-is to date foo.jpg, I get the error
date: unknown option -- 0 and the usual semi-courteous suggestion to Try 'date --help' for more information.

Somehow my TexInfo database got screwed up somewhere along the line and
info date
gives me the short article on date input formats, not the full documentation for the command. So any help in this regard would be much appreciated.

Old 07-12-2010, 09:11 PM   #2
Senior Member
Registered: Aug 2009
Posts: 3,790

Rep: Reputation: 653Reputation: 653Reputation: 653Reputation: 653Reputation: 653Reputation: 653
Try 'touch -m -d <date_string> <filename>'
Old 07-16-2010, 10:45 AM   #3
Registered: May 2009
Posts: 181

Original Poster
Blog Entries: 9

Rep: Reputation: 15
Originally Posted by kbp View Post
Try 'touch -m -d <date_string> <filename>'
Works well enough. I'd call that a solution.
Forgot that 'touch' had those extra functions. I've been using it to create empty files into which to save data from other apps (so I don't have to type in a file name, just click on the empty and confirm the overwrite).
Time to re-acquaint myself with the MAN page, methinks.

Old 07-16-2010, 10:53 AM   #4
LQ Guru
Registered: Sep 2009
Location: Perth
Distribution: Manjaro
Posts: 9,796

Rep: Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065Reputation: 3065
Well I can see this is SOLVED (please mark it as so), but in case you are interested:
date -d "$(stat foo.jpg | sed -n '/Modify/s/[^:]*: //p')"
Old 07-16-2010, 11:12 AM   #5
LQ Guru
Registered: Sep 2003
Location: Bologna
Distribution: CentOS 6.5 OpenSuSE 12.3
Posts: 10,509

Rep: Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981Reputation: 1981
date -r foo.jpg
1 members found this post helpful.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Use date with touch to create new file with date based name craigjl Linux - Newbie 5 03-12-2010 09:46 AM
shell script to find modified date and last accessed date of any file. parasdua Linux - Newbie 6 04-22-2008 09:59 AM
[bash] Seeing if a file has been modified before/after a date w3stfa11 Programming 7 10-15-2006 06:02 PM
bash sort files by date in file name thedude2010 Programming 6 05-12-2006 11:07 AM
Set name of tar file as date using bash otisthegbs Linux - Software 5 12-18-2003 03:34 PM > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 08:58 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration