Mova todo o comando bash
para um script (digamos, em /some/path/sync.sh
):
#! /bin/bash
for i
do
EXT="${i##*.}"
EXT=${EXT,,}
if [[ "${EXT}" == *"/"* ]]
then
EXT="no_extension";
fi
mkdir -p "${DEST}/${EXT}"
rsync -a "$i" "${DEST}/${EXT}"
done
Em seguida, chame o find
assim:
SRC="/src"
export DEST="/dest"
find "${SRC}" -iname '*' -type f -exec /some/path/sync.sh {} +
Agora adicione todas as funções que você deseja.
Em particular, para ignorar extensões de arquivo inúteis, modificar o comando find
seria melhor:
find ... ! -regex '.*\.(some|useless|exts)$' ... -exec
(Com alguns escapes de (
e |
e uma escolha apropriada de -regextype
.)