Pagina inicial » como » Shell Geek renomeia vários arquivos de uma só vez

    Shell Geek renomeia vários arquivos de uma só vez

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

    O comando "for" funciona assim:

    para 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:

    para f in *; faça mv $ f $ f / teste / prod;

    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 me salvou horas do que, de outra forma, teria sido o trabalho manual.

    E sim, eu percebo que há uma série de ferramentas que podem realizar a renomeação de vários arquivos.