pc - copy to clipboard ```bash #!/bin/bash # copy to clipboard if [ -n "$DISPLAY" ]; then # X11 cat "$@" | xsel -i -b elif [ -d "/Applications" ]; then # macos cat "$@" | pbcopy elif [ -d "/cygdrive/c/cygwin64" ]; then # cygwin cat "$@" > /dev/clipboard else echo "Cannot copy as not gui" > /dev/stderr fi ``` pcw - use which to find a file and copy that to the clipboard ```bash #!/bin/bash a="$(which "$1")" if exists "$a"; then pc "$a" fi ``` pp - paste from clipboard, to stdout, and possibly to named files (use -y switch to enable clobbering, else it will not overwrite) ```bash #!/bin/bash if [ -n "$DISPLAY" ]; then # X11 paste() { xsel -o -b; } elif [ -d "/Applications" ]; then # macos paste() { pbpaste; } elif [ -d "/cygdrive/c/cygwin64" ]; then # cygwin paste() { cat /dev/clipboard; } else echo "Cannot paste as not gui" > /dev/stderr fi clobber=n if [ $# = 0 ]; then paste exit fi for s; do if [ "$s" = "-y" ]; then clobber=y continue fi if [ -n "$s" ]; then if [ "$clobber" = "y" -o ! -e "$s" ]; then paste | tee "$s" elif [ -e "$s" ]; then echo "Not overwriting $s" fi else paste fi done ```