diff options
Diffstat (limited to 'move-if-change')
-rwxr-xr-x | move-if-change | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/move-if-change b/move-if-change index ff74a556d..ee1b348be 100755 --- a/move-if-change +++ b/move-if-change @@ -1,22 +1,32 @@ #!/bin/sh -# Like mv $1 $2, but if the files are the same, just delete $1. -# Status is zero if successful, nonzero otherwise. -usage="$0: usage: $0 SOURCE DEST" +# Copyright (C) 1996 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -case $# in -2) ;; -*) echo "$usage" >&2; exit 1;; -esac - -for arg in "$1" "$2"; do - case $arg in - -*) echo "$usage" >&2; exit 1;; - esac -done - -if test -r "$2" && cmp -s "$1" "$2"; then - rm -f "$1" +if +test -r $2 +then +if +cmp $1 $2 > /dev/null +then +echo $2 is unchanged +rm -f $1 +else +mv -f $1 $2 +fi else - mv -f "$1" "$2" +mv -f $1 $2 fi |