.de VS .sp 1 .RS .nf .ft B .. .de VE .ft R .fi .RE .sp 1 .. .TH inplace 1 "5 February 2005" "Edgeware tools" .SH NAME inplace \- update a file in-place .SH SYNOPSIS .B inplace .I file \&... .B \-\- .I program .RI [ arguments ...] .SH DESCRIPTION The .B inplace program rewrites files in place using filters. For each .I file it runs .VS .IR "program arguments " ... .VE with standard input redirected from .I file and redirecting standard output to .IR file \c .BR .new . If all these programs are successful, then each .I file is copied to .IB file .old and each .IB file .new renamed to .IR file ; the .IB file .old files are then deleted. If something went wrong, the .IB file .new files are all deleted and the original .IR file s are left unmodified. .I program exits successfully, .B inplace will rename the newly-written .IB file .new to simply .I file and exit zero; otherwise it deletes .IB file .new and exits the same as .I program did. .SH BUGS Doesn't exit correctly if subprogram was killed by a signal. The update isn't completely perfect but it's very good; it can leave debris lying around if strange things happen during the renaming. .SH AUTHOR Mark Wooding