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