Mike, that's even better. Also your for-loop works without the Command Substitution: for FILE in *.txt; do touch -r list $FILE; done -Gavin On Mon, Sep 9, 2013 at 10:16 PM, Mike Miller <mbmiller+l at gmail.com> wrote: > Yes!! Thanks. That is much better. I was trying to figure out something > like that, something simpler, but I didn't spend enough time on the docs > for "touch" -- that was the key. I was looking to much at other things > like stat. > > Now I see that the epoch %s time isn't needed because this works just as > well: > > MTIME=$(stat -c %y "$FILE") > > perl -pi -e 's/FOO/BAR/' "$FILE" > touch -d "$MTIME" "$FILE" > > Best of all, touch has a -r option that can be used in this kind of case. > Consider this example: > > perl -pi.bak -e 's/FOO/BAR/' *.txt > > for FILE in $(ls -1 *.txt) ; do touch -r "${FILE}.bak" "$FILE" ; done > > rm *.txt.bak > > Mike > > > > On Mon, 9 Sep 2013, Gavin Purcell wrote: > > This is slightly more concise, but it seems to drop second fractions. >> Something else to consider is the Access time. Hopefully this is helpful. >> >> >> EPOCH_MTIME=$(stat -c %Y $FILE) >> perl -pi -e 's/FOO/BAR/' "$FILE" >> touch -d @$EPOCH_MTIME $FILE >> >> >> Access: 2013-09-08 23:48:25.155170463 -0500 >> Modify: 2013-09-08 23:48:25.155170463 -0500 >> Change: 2013-09-08 23:48:25.155170463 -0500 >> >> Access: 2013-09-08 23:48:25.000000000 -0500 >> Modify: 2013-09-08 23:48:25.000000000 -0500 >> Change: 2013-09-09 00:39:02.306271692 -0500 >> >> >> -Gavin >> >> >> On Fri, Sep 6, 2013 at 9:59 PM, Mike Miller <mbmiller+l at gmail.com> wrote: >> >> Changing the system clock is a very bad idea, but I guess you figured >>> that >>> out and sent the message anyway. This means that you need a beer. >>> >>> I think the method I came up with is OK, but if there were a way to tell >>> perl not to change the timestamp when the -i option is used, that would >>> be >>> better. I guess this is telling me, but I don't understand it: >>> >>> http://www.velocityreviews.****com/forums/t890336-preserve-**** >>> timestamp.html<http://www.**velocityreviews.com/forums/** >>> t890336-preserve-timestamp.**html<http://www.velocityreviews.com/forums/t890336-preserve-timestamp.html> >>> > >>> >>> which leads me here: >>> >>> http://perldoc.perl.org/****functions/utime.html<http://perldoc.perl.org/**functions/utime.html> >>> <http://**perldoc.perl.org/functions/**utime.html<http://perldoc.perl.org/functions/utime.html> >>> > >>> >>> >>> And I don't knoww what to do with that, so I might just stick to what I >>> did last time. ;-) >>> >>> Mike >>> >>> >>> >>> On Fri, 6 Sep 2013, Jeremy MountainJohnson wrote: >>> >>> In Python the os module should have something to modify it (one would >>> >>>> think so since it can read this fs meta). If not, you could write a >>>> script to change the system clock to the original read time stamp of >>>> the file, modify the file, than change the clock back- would do the >>>> job of maintaining the modified attribute. Heh, probably not easier, >>>> but the best my work wired mind could come up with on a Friday :-) >>>> -- >>>> Jeremy MountainJohnson >>>> Jeremy.MountainJohnson at gmail.****com <Jeremy.MountainJohnson at gmail.** >>>> com <Jeremy.MountainJohnson at gmail.com>> >>>> >>>> >>>> >>>> On Fri, Sep 6, 2013 at 5:17 PM, Mike Miller <mbmiller+l at gmail.com> >>>> wrote: >>>> >>>> I don't know the best way to do this. I wanted to change some files >>>>> but >>>>> I >>>>> wanted to keep the original timestamps. So I did it this way: >>>>> >>>>> # get the timestamp >>>>> TIME_STRING=$(date -d "$(stat -c %y FILE)" +"%Y%m%d%H%M.%S") >>>>> >>>>> make changes to FILE >>>>> >>>>> # change the timestamp back to what it was before the change >>>>> touch -t $TIME_STRING FILE >>>>> >>>>> >>>>> My use was something like this: >>>>> >>>>> for FILE in $(grep -l FOO) ; do >>>>> TIME_STRING=$(date -d "$(stat -c %y "$FILE")" +"%Y%m%d%H%M.%S") >>>>> perl -pi -e 's/FOO/BAR/' "$FILE" >>>>> touch -t $TIME_STRING "$FILE" >>>>> done >>>>> >>>>> >>>>> So how do you all do this kind of thing? >>>>> >>>>> Mike >>>>> ______________________________****_________________ >>>>> >>>>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota >>>>> tclug-list at mn-linux.org >>>>> http://mailman.mn-linux.org/****mailman/listinfo/tclug-list<http://mailman.mn-linux.org/**mailman/listinfo/tclug-list> >>>>> <ht**tp://mailman.mn-linux.org/**mailman/listinfo/tclug-list<http://mailman.mn-linux.org/mailman/listinfo/tclug-list> >>>>> > >>>>> >>>>> ______________________________****_________________ >>>> >>>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota >>>> tclug-list at mn-linux.org >>>> http://mailman.mn-linux.org/****mailman/listinfo/tclug-list<http://mailman.mn-linux.org/**mailman/listinfo/tclug-list> >>>> <ht**tp://mailman.mn-linux.org/**mailman/listinfo/tclug-list<http://mailman.mn-linux.org/mailman/listinfo/tclug-list> >>>> > >>>> >>>> ______________________________****_________________ >>>> >>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota >>> tclug-list at mn-linux.org >>> http://mailman.mn-linux.org/****mailman/listinfo/tclug-list<http://mailman.mn-linux.org/**mailman/listinfo/tclug-list> >>> <ht**tp://mailman.mn-linux.org/**mailman/listinfo/tclug-list<http://mailman.mn-linux.org/mailman/listinfo/tclug-list> >>> > >>> >>> >> ______________________________**_________________ > TCLUG Mailing List - Minneapolis/St. Paul, Minnesota > tclug-list at mn-linux.org > http://mailman.mn-linux.org/**mailman/listinfo/tclug-list<http://mailman.mn-linux.org/mailman/listinfo/tclug-list> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20130909/6a138a5e/attachment-0001.html>