2005-09-06 Paul Eggert <eggert@cs.ucla.edu> * move-if-change: Don't output "$2 is unchanged"; suggested by Ben Elliston. Handle weird characters correctly.
		
			
				
	
	
		
			23 lines
		
	
	
		
			384 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			384 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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"
 | |
| 
 | |
| 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"
 | |
| else
 | |
|   mv -f "$1" "$2"
 | |
| fi
 |