------------------------------------------------------------------------
cp copy files 
------------------------------------------------------------------------

Copy is a venerable tool. Does it need a writeup? GNU "gcp" has new 
features which are useful. Get surprised. Switch to gcp!

$ gcp -b -i -n -r -u -v  file1 file2

-b if file2 exists then create a backup ("file2~")
-S STRING, if file2 exists then create backup "file2STRING"
-u do not copy if file2 is the same as file1 
-v verbose (useful diagnostic when you turn on "u" flag)

-i interactive (ask question before proceeding)
-n no clobber (will not over-write existing file2)
-r recursively copy directory structure to destination

Note:
gcp can also create hard and soft links (replacing "ln")

The most useful options are "-b", "-S" and "-u". 
I also quite like the "-v" feature. 

$ gcp -v a b
'b' -> 'a'
$ gcp -v a b   #no action since b is the same as a

$ gcp -b -v a c
'a' -> 'c' (backup: 'c~')

$gcp -S .bak -v  a c
'a' -> 'c' (backup: 'c.bak')

Note: the verbose output has a weird character which is similar to ' 
and which does not print properly.  I changed it to this character
to '.