Redirecting output from running proc doesn't modify the "last modified time" field for target file
Jon Clugston
jon.clugston@gmail.com
Fri Dec 2 17:20:00 GMT 2011
On Fri, Dec 2, 2011 at 11:51 AM, ajshower <ajshower@gmail.com> wrote:
>
> I've got a bash script running in Cygwin whose output has been redirected to
> another file. MS-DOS exhibits this same behavior if I run the bash script
> as a batch job.
>
> bash.exe &> log.txt
>
> Adding content to log.txt through redirection does not change log.txt's last
> modified time while bash.exe is executing.
>
> Baseline:
> # ls -la --full-time log.txt
> -r-xr-x---+ 1 user Domain Users 66455 2011-11-30 16:16:45.246664800
> -0500 log.txt
>
> Some time later:
> # ls -la --full-time log.txt
> -r-xr-x---+ 1 user Domain Users 66838 2011-11-30 16:16:45.246664800
> -0500 log.txt
>
> Note that even though log.txt has gotten larger, the last modified time has
> not changed. The last modified time is updated only when bash.exe
> terminates.
>
> Ubuntu 11.04 handles this scenario, IMO, correctly. Is there a way I can
> get the last modified time to be updated when the content of the file
> changes and while bash.exe is executing?
>
> Cygwin: CYGWIN_NT-6.1
> MS-DOS: Microsoft Windows [Version 6.1.7601]
>
I don't see how this could be a Cygwin issue. If writing to a file
(while it is open) doesn't immediately update the last modified time
on Windows, there is no reasonable way for Cygwin to "fix" that.
IMHO, this is a very dubious "feature" to depend upon. If you want to
know if the file has changed, why not check its length instead?
Jon
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list