On Unix, if you "rm file1" or "mv file2 file1", file1 goes away, but if someone has it open, they maintain a link to an "invisible file". The file only REALLY goes away when they close their filehandle.<div>
<br></div><div>On Windows, my understanding is that you can't delete files that are open, but i don't deal with Windows.</div><div><br></div><div>Tom<br> <br><div class="gmail_quote">On Fri, May 4, 2012 at 3:14 PM, Indy Singh <span dir="ltr"><<a href="mailto:indy@indigostar.com" target="_blank">indy@indigostar.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">While we are on this topic.  One issue I have encountered is that of how to update a 'live' file on a webserver.  Lets say that we have a large file on a webserver 'foo.tar' and I want to replace it with a new version.  If I SFTP upload a replacement file then I am never sure if I am going to mess up someone that may be half way trough downloading the file.<br>

<br>
I just verified that the inode number does not change if I upload a replacement file with SFTP. Would I be correct in thinking that any file downloads that are occurring concurrently with the upload would be corrupted?<br>

<br>
Would it be safe to upload the new file as 'new.tar' then use the commands 'rm foo.tar' followed by 'mv new.tar foo.tar'?  On the assumption that the rm command would only unlink the directory entry but any current file handles being used to download the file would continue to work.  Any new downloads would use the new file.<div class="im">
<br>
<br>
<br>
Indy Singh<br>
IndigoSTAR Software -- <a href="http://www.indigostar.com" target="_blank">www.indigostar.com</a><br></div>
-----Original Message----- From: arocker@Vex.Net<br>
Sent: Friday, May 04, 2012 2:44 PM<br>
To: TPM<br>
Subject: Re: [tpm] more problems than solutions this week<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
I see Indy's answered your problem, but just a point on the topic:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
But what I've found is that the inode doesn't change!<br>
[so I'd assume that the ">" redirection simply rewinds<br>
the write pointer to offset zero and writes the string<br>
and then truncates the file at that point.]<br>
<br>
</blockquote>
<br>
That's why "sort file > file" (and similar commands) is fatal; it resets<br>
the pointer on the (output) file, then starts trying to read from the<br>
(input) file, whose pointer now says it's at EOF.<br>
<br>
______________________________<u></u>_________________<br>
toronto-pm mailing list<br>
<a href="mailto:toronto-pm@pm.org" target="_blank">toronto-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/toronto-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/toronto-pm</a> <br>
______________________________<u></u>_________________<br>
toronto-pm mailing list<br>
<a href="mailto:toronto-pm@pm.org" target="_blank">toronto-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/toronto-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/toronto-pm</a><br>
</div></div></blockquote></div><br></div>