Essa é mais uma dica “cotidiana” que pode ajudar o Administrador de Sistemas baseados em Linux a passar menos trabalho e evitar perda de tempo bolando soluções mirabolantes..
Supondo que tenhamos o seguinte diretório cialinux/ com estes cinco arquivos:
root@localhost:/tmp/cialinux# ls -la
total 1
drwxr-xr-x 2 root root 208 2009-06-25 20:43 .
drwxrwxrwt 19 root root 648 2009-06-25 20:40 ..
-rw-r–r– 1 root root 0 2009-06-25 20:40 cinco.txt_OLD
-rw-r–r– 1 root root 0 2009-06-25 20:40 dois.txt_OLD
-rw-r–r– 1 root root 0 2009-06-25 20:40 quatro.txt_OLD
-rw-r–r– 1 root root 0 2009-06-25 20:40 tres.txt_OLD
-rw-r–r– 1 root root 0 2009-06-25 20:40 um.txt_OLD
root@localhost:/tmp/cialinux#
Todos eles já foram processados durante a madrugada e renomeados de *.txt para *.txt_OLD. Porém, por algum motivo, você precisa que eles sejam reprocessados, ou seja, fiquem novamente com extensão *.txt.
E agora?
Segue abaixo uma solução utilizando “pipe” redirecionando a saída padrão para o sed, que irá substituir ‘*_OLD‘ por ” (nada):
root@localhost:/tmp/cialinux# for i in *; do mv $i `echo $i | sed s/’.OLD’/”/`; done
root@localhost:/tmp/cialinux# ls -la
total 1
drwxr-xr-x 2 root root 184 2009-06-25 20:50 .
drwxrwxrwt 19 root root 648 2009-06-25 20:40 ..
-rw-r–r– 1 root root 0 2009-06-25 20:40 cinco.txt
-rw-r–r– 1 root root 0 2009-06-25 20:40 dois.txt
-rw-r–r– 1 root root 0 2009-06-25 20:40 quatro.txt
-rw-r–r– 1 root root 0 2009-06-25 20:40 tres.txt
-rw-r–r– 1 root root 0 2009-06-25 20:40 um.txt
root@localhost:/tmp/cialinux#
Neste exemplo foram utilzados apenas cinco arquivos, mas pense numa pasta que tenha este arquivo: trezentosmil.txt_OLD 😉
Pode ser útil a você um dia. Se você conhece outra forma de fazer a mesma coisa, de forma semelhante, ou mais avançada, coloque em comentários.
Por: Hudson Murilo dos Santos
Recentemente precisei renomear as extensões de centenas de arquivos, mas esta opção não funcionou porque os arquivos eram de extensão .nes;1 e queria renomeá-los para .nes. Toda a vez em que eu executava o script, ele esbarra no ;1.
Consegui resolver o problema usando um programa de Ruindows chamado File Renamer.
Sei que seu script parece ser muito bom, mas acho que dá para aperfeiçoar. O Linux também tem uma ferramenta chamada Thunar, mas eu só consegui instalá-lo depois de ter atualizado minha distro.
Fala mano Paulada!
Obrigado pela leitura e visita no BLOG bem como colaboração nos comentários.
Claro que pode ser aperfeiçoado. Tudo aqui pode ser. Tudo é um eterno exercício de aperfeiçoamento.
Veja como poderias ter feito no mesmo comando, apenas trocando ‘_OLD’ por ‘;1’ no SED:
Espero ter ajudado.
E se me permite dar um conselho de amigo da comunidade: Evite buscar recursos para isso em plataforma concorrente. O Bash é sempre o melhor caminho pra manipular essas coisas. Venha e pergunte aqui no CIALINUX que prontamente vamos lhe ajudar sempre. Tanto você quanto todos os leitores e interessados.
Um forte abraço!! Volte sempre!!