In software engineering, clobbering a file or computer memory is overwriting its contents. The Jargon File defines clobbering as "overwrit(), usually unintentionally: 'I walked off the end of the array and clobbered the stack.' Compare ''mung'', ''scribble'', ''trash'', and ''smash the stack''."("Clobber" entry ), ''Jargon File'' (public domain)Often this happens unintentionally, e.g., using the > redirection operator. To prevent unintentional clobbering, various means are used. For example, the setting shell parameter set -o noclobber (bash, ksh) or set noclobber (csh, tcsh) will prevent > from clobbering by making it issue an error message instead:( "Unix Power Tools", by Shelley Powers, Jerry Peek, Tim O'Reilly, Mike Loukides, p. 892 )$ echo "Hello, world" >file.txt$ echo "This will overwrite the first greeting." >file.txt$ set -o noclobber$ echo "Can we overwrite it again?" >file.txt-bash: file.txt: cannot overwrite existing file$ echo "But we can use the >| operator to ignore the noclobber." >|file.txt$
The default behavior of the mv and cp commands is to clobber their destination file if it already exists. This behavior may be overridden by invoking or aliasing the commands with the -i switch, causing the commands to prompt the user before overwriting the destination file. In makefiles, a common target ''clobber'' means complete cleanup of all unnecessary files and directories produced by previous invocations of the makecommand.〔(UNIX System V, Release 4, Motorola Unix, Motorola, inc, inc Motorola, p. 28 )〕 It is a more severe target than ''clean'' and is commonly used to uninstall software. Some make-related commands invoke "make clobber" during their execution. They check the CLOBBER environment variable. If it is set to OFF then clobbering is not done.〔("Unix Unleashed", by Robin Burk, David B. Horvath )〕 In assembler programming, the term 'clobbered registers' is used to denote any registers whose value may be overwritten during the course of executing an instruction or procedure. ==References==