Tente este comando comando:
find . -type f -name '*\**' -exec bash -c 'f="$1"; echo mv "$f" 'echo "$f"|tr "\*" "-"'' - '{}' \;
Eu tenho cerca de 1000 arquivos contendo o caractere * no nome. Eu preciso encontrar esses arquivos e substituir o * por um - . Eu estou trabalhando com o HP UX v11. Eu estou usando o seguinte comando
find . -type f -name '*\**' -exec bash -c 'f="$1"; mv "$f" "${f//\*/-}"' - '{}' \;
Me disseram que funciona, mas para mim ele renomeia o arquivo completo para - em vez de substituir o * .
GNU bash, versão 2.04.0 (1) -release (hppa2.0w-hp-hpux11.00)
Tags bash batch-rename hp-ux