32 lines
650 B
Bash
32 lines
650 B
Bash
#!/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//\|/ }
|
|
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
|
|
echo "$string"
|
|
}
|