Existem dois comandos chamados rename
nas distribuições do Linux. Existe um um dos utilitários básicos do Linux , que é usado assim:
rename SUBSTRING REPLACEMENT FILE...
Este comando substitui a primeira ocorrência de SUBSTRING por REPLACEMENT em cada um dos arquivos especificados. Ele suporta apenas strings simples, não curingas ou expressões regulares. No Debian e derivados (Ubuntu, Mint, etc.), este comando é chamado rename.ul
. Em outras distribuições Linux, é chamado rename
.
Existe também um script perl chamado rename
que é usado assim :
rename 'PERL CODE' FILE...
Uma forma comum de código Perl é rename 's/REGEXP/REPLACEMENT/' FILE...
, que substitui a primeira ocorrência de REGEXP por REPLACEMENT em cada nome de arquivo ( s/REGEXP/REPLACEMENT/g
substitui todas as ocorrências).
O autor de a pergunta que você viu indicou que ele está concorrendo Ubuntu, por isso ele aceitou esta resposta usando o rename
comando encontrado no Ubuntu.
O análogo para o comando padrão rename
é
find . -name "*.txt" -exec rename .txt .svg {} \;
Com bash ≥4, você pode usar o **
padrão curinga depois de definir a globstar
opção para corresponder arquivos em subdiretórios sem usando find
.
shopt -s globstar
rename .txt .svg **/*.txt
Tenha em atenção que este comando rename
actua na primeira cadeia, por isso, se tiver um ficheiro denominado hello.txt.world.txt
, este será renomeado para hello.svg.world.txt
.