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>