você está aqui: Home  → Arquivo de Mensagens

Como renomear múltiplos arquivos com um único comando

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 11 de dezembro de 2015

O comando rename permite que alteremos o nome de diversos arquivos de uma só vez, com um único comando:

$ ls
a.txt  c.txt  e.txt  g.txt  i.txt  k.txt  m.txt  o.txt  q.txt  s.txt  u.txt  w.txt  y.txt
b.txt  d.txt  f.txt  h.txt  j.txt  l.txt  n.txt  p.txt  r.txt  t.txt  v.txt  x.txt  z.txt

Vamos alterar a extensão de todos os arquivos de .txt para .doc:

$ rename 's/txt/doc/' *.txt
$ ls
a.doc  c.doc  e.doc  g.doc  i.doc  k.doc  m.doc  o.doc  q.doc  s.doc  u.doc  w.doc  y.doc
b.doc  d.doc  f.doc  h.doc  j.doc  l.doc  n.doc  p.doc  r.doc  t.doc  v.doc  x.doc  z.doc

O primeiro argumento do programa rename é um comando perl de substituição ('s/txt/doc/') e o segundo argumento é a lista de arquivos aos quais serão aplicados os comandos.

O comando rename possui a seguinte sintaxe:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

A diretiva -n indica ao programa para não fazer nada, o programa apenas exibe o que iria fazer:

$ rename -n 's/txt/doc/' *.txt
*.txt renamed as *.doc

A diretiva -f força o programa a sobrescrever o arquivo destino, caso exista.

O programa rename é de autoria de Larry Wall, o criador da linguagem Perl.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida