cp --backup
calcula a extensão de backup ~
para os arquivos e a opção numbered
faz com que use ~1~
, ~2~
e assim por diante. Portanto, para alterá-la, você deve criar um script para alterar o comportamento.
Este script criaria uma cópia de cada imagem em sourcefolder
para um único destino de pasta (seria não cria qualquer subdiretório), evitando colisões anexando um número ao arquivo, logo antes da extensão .
Note que toda vez que é executado, ele duplicará todos os arquivos, assim como o seu script.
A parte while IFS
é necessária para nomes de arquivos com espaços.
sourcefolder="/root/folder/images"
destinationfolder="/root/folder/CopiedImages"
find "${sourcefolder}" \( -name '*.png' -o -name '*.jpg' -o -name '*.JPG' \) -print0 | while IFS= read -r -d $'sourcefolder="/root/folder/images"
destinationfolder="/root/folder/CopiedImages"
find "${sourcefolder}" \( -name '*.png' -o -name '*.jpg' -o -name '*.JPG' \) -print0 | while IFS= read -r -d $'%pre%' img; do
imgname="${img##*/}"
ext="${imgname##*.}"
noext="${imgname%.*}"
destname="${destinationfolder}/${noext}.${ext}"
count=0
while [ -f "${destname}" ] ; do
count=$((count+1))
destname="${destinationfolder}/${noext}.${count}.${ext}"
done
cp "${img}" "${destname}"
done
' img; do
imgname="${img##*/}"
ext="${imgname##*.}"
noext="${imgname%.*}"
destname="${destinationfolder}/${noext}.${ext}"
count=0
while [ -f "${destname}" ] ; do
count=$((count+1))
destname="${destinationfolder}/${noext}.${count}.${ext}"
done
cp "${img}" "${destname}"
done