[Design de programação Shell] Projete um script Shell para modificar em lote os nomes dos arquivos em um diretório


Modificação em lote de nomes de arquivos em um diretório: análise aprofundada de scripts Bash

introdução

No ambiente Linux, a modificação em lote de nomes de arquivos é um requisito comum. Este artigo analisará em detalhes um script Bash usado para modificar em lote nomes de arquivos em um diretório e adicionar algumas funções adicionais com base nisso. Começaremos com a estrutura básica do roteiro e iremos detalhando cada detalhe.

Como disse Bjarne Stroustrup em "The C++ Programming Language": "Programar não se trata apenas do que dizemos ao computador para fazer, mas também de como expressar nossos pensamentos."

Infraestrutura de script

Primeiro, vamos dar uma olhada na estrutura básica do script:

#!/bin/bash
# 批量修改一个目录里文件名
# modify_suffix.sh
dst_path=$1
for file in `ls $dst_path`
do
    if [ -d $1/$file ]
        then echo `$0 $1/$file`
    elif [ -f $1/$file ]
        then mv $1/$file $1/${file}._mod
    else
        echo $1/${file} is unknow file type
    fi
done;

Este script faz principalmente o seguinte:

  1. #!/bin/bash:Especifique o intérprete usado pelo script (Intérprete: Bash)
  2. dst_path=$1: Obtenha o primeiro parâmetro da linha de comando e armazene-o em uma variável dst_path.
  3. for file in ls $dst_path``: Percorre todos os arquivos e subdiretórios no diretório de destino.
  4. if [ -d $1/$file ]: Verifique se é um diretório.
  5. elif [ -f $1/$file ]: Verifique se é um arquivo (Arquivo).
  6. mv $1/$file $1/${file}._mod: renomeie o arquivo e adicione ._modum sufixo.
  7. else: se não for um arquivo nem um diretório, gera um tipo de arquivo desconhecido.

Extensão de função

Adicionar função de registro

Ao operar arquivos em lotes, é uma boa prática registrar logs de operação. Podemos conseguir isso simplesmente adicionando algumas linhas de código.

log_file="modify_log.txt"
echo "Start modifying files at $(date)" >> $log_file

No final do script também podemos adicionar:

echo "Finished modifying files at $(date)" >> $log_file

Suporta sufixo personalizado

No script original, a modificação do nome do arquivo é codificada, ou seja, adicionando ._modum sufixo. Podemos permitir que os usuários personalizem o sufixo adicionando um novo parâmetro de linha de comando.

custom_suffix=$2
mv $1/$file $1/${file}${custom_suffix}

Resumo e reflexões

Por meio deste artigo, não apenas aprendemos como usar scripts Bash para modificar nomes de arquivos em lote, mas também exploramos como otimizar e expandir as funções dos scripts. No processo de programação, estamos na verdade tendo uma interação profunda com o computador, o que reflete nossa compreensão e criatividade na solução de problemas.

Como disse Bjarne Stroustrup em "The C++ Programming Language": "Código é uma linguagem destinada à compreensão humana que por acaso é executável por máquinas."

Este artigo não cobre o código-fonte específico do compilador ou a implementação de funções de biblioteca, porque os scripts Bash geralmente são interpretados e executados. No entanto, para tarefas de programação mais complexas, é muito benéfico ter um conhecimento profundo da implementação subjacente.

Espero que este artigo possa ajudá-lo a obter uma compreensão mais profunda da programação de scripts Bash e da conotação profunda da programação como uma ferramenta de pensamento.

Conclusão: Programação, pensamento e crescimento contínuo

No mundo da programação, cada linha de código é uma expressão e cada problema é um desafio. Assim como os scripts Bash que exploramos neste artigo, o código simples geralmente contém uma riqueza de pensamento e sabedoria para resolver problemas. A programação não é apenas uma atividade técnica, mas também um exercício de pensamento e uma manifestação da criatividade humana.

Como disse Bjarne Stroustrup em "The C++ Programming Language": "Programar é a arte de compreender."

Do ponto de vista da programação, cada erro e cada desafio são uma oportunidade de crescimento. Esses “erros” são na verdade um diálogo profundo entre nós e o computador, com o problema e até com nós mesmos. Não são apenas problemas, mas também uma revelação, guiando-nos para otimizar o nosso pensamento e melhorar as soluções.

Sinceramente, convido a todos a participarem desta jornada de programação e pensamento. Quer você seja novo em programação ou um desenvolvedor experiente, sinta-se à vontade para compartilhar seus insights e experiências. Cada interação que vocês têm, seja curtidas, comentários, compartilhamentos ou seguidores, é o maior incentivo e apoio para que eu continue criando e compartilhando.

Obrigado por reservar um tempo para ler este artigo. Se você achar que é valioso, não se esqueça de marcá-lo e compartilhá-lo. Também agradecemos suas valiosas sugestões e dúvidas sobre o conteúdo do blog, pois cada pergunta pode ser o ponto de partida para o próximo artigo.

Vamos continuar a aprender e crescer juntos no caminho da programação.

“O código é como a poesia, a sabedoria é como a luz.” —— Desconhecido

Obrigado pela leitura e estou ansioso para encontrá-lo novamente na interseção entre programação e pensamento.


Leia minha página inicial da CSDN e desbloqueie mais conteúdo interessante: Página inicial da CSDN do Bubble
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_21438461/article/details/132930034
Recomendado
Clasificación