20 lines
445 B
Bash
20 lines
445 B
Bash
|
#! /bin/bash
|
||
|
|
||
|
sanitize() {
|
||
|
shopt -s extglob;
|
||
|
|
||
|
filename=$(basename "$1")
|
||
|
directory=$(dirname "$1")
|
||
|
|
||
|
#filename_clean="${filename//+([^[:alnum:]_-\.])/_}"
|
||
|
filename_clean=$(echo -n $filename | tr --complement --squeeze-repeats "[:alnum:]./" "_")
|
||
|
|
||
|
if (test "$filename" != "$filename_clean")
|
||
|
then
|
||
|
mv -v --backup=numbered "$1" "$directory/$filename_clean"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
export -f sanitize
|
||
|
find $1 -depth -exec bash -c 'sanitize "$0"' {} \;
|