#! /bin/bash usage() { cat << EOF usage $0 options This script will decrypt any pdf given to it. The correct password has to be passed. REQUIRES qpdf OPTIONS: -h Shows this message -p The password to be used -v Verbose output EOF } # checks if 'qpdf' is installed type -P qpdf &>/dev/null || { echo "I require qpdf but it's not installed. Aborting." >&2; exit 1; } PWD= while getopts "hp:v" OPT; do case $OPT in h) usage exit EXIT_SUCCESS ;; p) PWD=$OPTARG ;; v) VERBOSE=1 ;; ?) usage exit ;; esac shift $((OPTIND-1)) done ARGS=$@ if [[ -z $ARGS ]] || [[ -z $PWD ]] || ! type -P qpdf &> /dev/null; then usage exit fi shopt -s nullglob # w/o this '*.pdf' will return the string if no pdfs are in the folder for DST in $ARGS; do if [[ -d $DST ]]; then for F in $DST/*.pdf; do [[ $VERBOSE ]] && echo $F mv $F tmp.pdf qpdf --password=$PWD --decrypt $F ${F%.pdf}_.pdf || echo "error" done elif [[ ${DST##*.} = "pdf" ]] && [[ -f $DST ]]; then [[ $VERBOSE ]] && echo $DST qpdf --password=$PWD --decrypt $DST ${DST%.pdf}_.pdf fi done