#!/bin/bash sanitizeFile() { shopt -s extglob string="$1" # Filenames can't contain / string="${string//\// }" if (( ${destinationfat32compat[$destination]} )) then # Filenames can't contain: string=${string//\?/ } string=${string//\\/ } string=${string/// } string=${string//:/ } string=${string//\*/ } string=${string//|/ } string=${string//\"/ } # Filenames can't begin or end with ' ' string=${string/#+( )/} string=${string/%+( )/} # Directory names can't begin or end with '.' if [[ $2 == dir ]] then string=${string/#+(.)/} string=${string/%+(.)/} fi fi # Not exactly filename sanitity, but these will make the script fail in # a decorative way.. string="${string//&/\\&}" strint="${string//;/\\;}" # And these would exhibit strange behaviors string="${string//\[/\\\[}" string="${string//\]/\\\]}" echo "$string" }