A maneira comum de fazer isso no bash é com a expansão do parâmetro . Se a variável file
contiver o nome do arquivo, faça algo assim:
name=${file%.*}
extension=${file##*.}
i=1
new_file="${name}_${i}.${extension}
cp "$file" "$new_file"
Para usar isso em um script ( duplicate.sh
say), faça algo assim:
#!/bin/bash
name=${1%.*}
extension=${1##*.}
infix="${2:-_1}"
cp -v "$1" "${name}${infix}.${extension}"
Em seguida, chame como:
duplicate.sh FILE INFIX