File: move-if-change

package info (click to toggle)
ghdl 0.29%2Bgcc4.3.4%2Bdfsg-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 127,928 kB
  • ctags: 84,078
  • sloc: ansic: 1,016,442; ada: 102,633; makefile: 51,566; asm: 27,741; sh: 14,879; cpp: 4,767; f90: 3,583; ml: 2,485; yacc: 1,102; perl: 1,092; exp: 745; awk: 639; lex: 461; fortran: 394; pascal: 87; lisp: 59
file content (22 lines) | stat: -rwxr-xr-x 384 bytes parent folder | download | duplicates (23)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/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