Header Ads

Como renomear screenshots no Linux

Muitos sistemas desktop Linux salvam capturas de tela com nomes como Captura de tela de 2020-11-29 18-57-51. png. Freqüentemente, o que você realmente precisava era renomear os arquivos para algo mais óbvio, como webinar1. png, webinar2. png e assim por diante. Felizmente, renomear vários arquivos é realmente fácil de fazer na linha de comando do Linux.

O shell Bash é muito versátil e oferece diferentes maneiras de avaliar valores e expandir variáveis. Uma avaliação bacana é a avaliação aritmética. Para realizar esta avaliação, envolva sua declaração aritmética com $ ((e)).

A avaliação também pode incluir expansão de variável, como $ sum para resolver em um valor. Mas, por conveniência, quaisquer variáveis ​​Bash listadas entre $ ((e)) são expandidas automaticamente. Por exemplo, para incrementar a contagem de uma variável em 1, você pode digitar:

 contagem = $ ((contagem + 1)) 

Isso é o mesmo que digitar:

 contagem = $ (($ contagem + 1)) 

A expansão aritmética suporta os mesmos operadores encontrados em outras linguagens de programação, incluindo + e - para adição e subtração, * e / para multiplicação e divisão, e% para o resto. Você também pode usar ++ e - para aumentar e diminuir um valor em uma variável. Verifique a página de manual do Bash e role para baixo até AVALIAÇÃO ARITMÉTICA para obter a lista completa de operadores suportados e sua precedência.

Para renomear todas as minhas capturas de tela, precisei escrever este comando Bash de uma linha:

 n = 1; para f na captura de tela * . png; faça o webinar mv -v "$ f" $ n. png; n = $ ((n + 1)); feito 

Mas o que isso faz?

A primeira parte do comando, n = 1, inicializa a variável n para 1.

Então eu uso um loop for para operar em todos os arquivos que começam com Screenshot e terminam com a extensão . png. Essas são geralmente todas as imagens que capturei durante meu último webinar. Se eu precisasse ser mais preciso, poderia incluir a data na especificação do arquivo, como Screenshot \ from \ 2020-11-29 * . png. As barras invertidas são escapes literais para preservar os espaços no nome do arquivo.

Cada iteração do loop for armazena um nome de arquivo na variável f. Portanto, o comando mv mv -v "$ f" webinar $ n. png renomeia cada arquivo com meus nomes de arquivo preferidos, como webinar1. png, webinar2. png e assim por diante. Preciso de aspas em torno da expansão da variável $ f para que os espaços em Captura de tela de AAAA-MM-DD hh-mm-ss. png não causem problemas no meu comando mv. Se você receber um erro como mv: target 'webinar1. png' não é um diretório, provavelmente você não colocou $ f.

Finalmente, eu incremento o valor na variável n para que esteja pronto para a próxima iteração do loop. A expansão aritmética n = $ ((n + 1)) incrementa a variável n em 1.

Nenhum comentário