
Tenho vários arquivos em um diretório que termina com 'StringtoReplace'. Como posso substituir essa parte do nome do arquivo de todos os arquivos no diretório por uma nova string, 'ReplacedString'?
Responder1
Isso substituirá a primeira instância de "StringtoReplace" por "ReplacedString":
for f in *StringtoReplace; do [ -f "$f" ] && mv -- "$f" "${f/StringtoReplace/ReplacedString}"; done
Isto substituirá odurarinstância de "StringtoReplace" com "ReplacedString":
for f in *StringtoReplace; do [ -f "$f" ] && mv -- "$f" "${f%StringtoReplace}ReplacedString"; done