Shell Geek: renomear vários arquivos de uma só vez

Shell Geek: renomear vários arquivos de uma só vez
Shell Geek: renomear vários arquivos de uma só vez

Vídeo: Shell Geek: renomear vários arquivos de uma só vez

Vídeo: Shell Geek: renomear vários arquivos de uma só vez
Vídeo: Windows® Vista: Disable delete confirmation dialog - YouTube 2024, Maio
Anonim

Digamos que você tenha um diretório com centenas de arquivos com nomes de arquivo errados e queira substituir todos os nomes de arquivo que contenham teste com prod. (este é um exemplo inventado). Podemos facilmente fazer isso com o comando “for” no bash, combinado com um pouco de bondade. Hoje aprenderemos a substituir o texto em uma variável em um loop for.

O comando "for" funciona assim:

for var in ;do $var;done

Você pode substituir com qualquer padrão de correspondência de arquivo, como * ou *.txt, e você pode substituir com qualquer comando linux. O comando será executado em seqüência em cada um dos arquivos correspondidos pelo padrão de correspondência de arquivos.

É aqui que o manuseio da variável bash torna ainda mais interessante. Em vez de apenas fazer algo como “mv $ var”, podemos substituir o texto no nome do arquivo usando esta sintaxe:

${var/originaltext/replacetext}

Então, agora, se nós executarmos este comando em nosso diretório:

for f in *;do mv $f ${f/test/prod};done

Para cada arquivo correspondido por *, o bash executará um comando semelhante a este:

mv test.config prod.config

Descobri que o conhecimento do shell é inestimável ao administrar servidores ou apenas para gerenciar sua coleção de arquivos e economizou horas do que, de outra forma, teria sido o trabalho manual.

E sim, percebo que há várias ferramentas que podem realizar renomeação de vários arquivos.

Recomendado: