Método 1: Bash Loop
A maneira mais comum de alterar as extensões de arquivo recursivamente em um diretório é usar uma festa para loop. Podemos levar o usuário a inserir o diretório de destino, a extensão antiga e a nova extensão de renomear usando um script de bash.
Etapa 1: Monte o script
Vamos começar a montar o script. A primeira parte que precisamos é obter o diretório de destino. Para isso, podemos lidar com:
#!/BIN/BASH
eco "Entre no diretório de destino"
Leia Target_dir
CD $ Target_dir
eco "Digite a extensão do arquivo para pesquisar sem ponto"
Leia Old_Ext
eco "Digite a nova extensão de arquivo para renomear sem ponto"
Leia new_ext
eco "$ Target_dir, $ old_ext, $ new_ext"
O script acima solicitará ao usuário que o diretório processe e depois CD no diretório SET.
Em seguida, obtemos a extensão antiga sem o ponto (.); Finalmente, obtemos a nova extensão para renomear os arquivos.
Agora vamos processar os arquivos. Por esta; Podemos implementar uma regra simples que pesquise recursivamente os arquivos como:
para arquivo em *.$ old_ext
fazer
MV -V "$ FILE" "$ FILE%.$ old_ext.$ new_ext "
feito;
O loop for acima pesquisará o diretório aprovado por todos os arquivos com a extensão antiga e os renomeará para a nova extensão.
Para ficar detalhado, usamos o comando MV com -v. Você pode suprimir essa saída substituindo o sinalizador -v por -
Etapa 2: Execute o script
Agora, vamos colocar o script à prova. O script final está abaixo:
#!/BIN/BASH
eco "Entre no diretório de destino"
Leia Target_dir
CD $ Target_dir
eco "Digite a extensão do arquivo para pesquisar sem ponto"
Leia Old_Ext
eco "Digite a nova extensão de arquivo para renomear sem ponto"
Leia new_ext
eco "$ Target_dir, $ old_ext, $ new_ext"
para arquivo em *.$ old_ext
fazer
MV -V "$ FILE" "$ FILE%.$ old_ext.$ new_ext "
feito;
Neste teste, usaremos o diretório /var /log e renomearemos todos os .Log Arquivos para .Bak. Aqui estão o conteúdo do diretório antes de executar o script.
$ ls l/var/log/| grep .registroAgora, vamos executar o script.
$ chmod +x extensões.shA captura de tela acima mostra o script processando os arquivos e renomeando todos os arquivos com .log para .Bak.
Como este é um script interativo, ele é útil quando você não deseja codificar a extensão.
A seguir, o conteúdo do diretório /var /log após o script.
$ ls -l/var/log/| grep .BakPara reverter as mudanças, mude a extensão antiga para .Bak e a nova extensão como .registro
Método 2: Renomear comando
Se você não tiver vontade de trabalhar com um script, poderá usar a ferramenta Renomear para alterar as extensões de arquivo recursivamente.
Para instalar renomear, use o comando:
$ sudo apt -get install renomear -yDepois de instalado, você pode usar o comando renomear como:
# Altere para o diretório de destinoPara reverter as mudanças, mude o .bak para .log e vice -versa.
$ sudo renomear 's/\.bak/.registro/' *.BakMétodo 3: Comando MMV
Você também pode usar o comando MMV que permite mover vários arquivos simultaneamente. Instale o MMV com o comando:
$ sudo apt-get install mmvPara renomear arquivos com o comando MMV:
$ cd/var/log/O número 1 move os arquivos para o diretório atual. Depois de executar o comando, ele renomeará tudo .Arquivos de log para a extensão especificada.
Resumindo
Este artigo discutiu vários métodos que você pode renomear recursivamente as extensões de arquivos em um diretório específico. No entanto, é bom observar que você pode implementar estratégias que não sejam as discutidas neste guia.
Obrigado pela leitura e lembre -se de compartilhar!