Como renomear capturas de tela no Linux

Conteúdo

Bash Shell

Muitos sistemas desktop Linux salvam capturas de tela com nomes como Screenshot from 2020-11-29 18-57-51.png. Frequentemente, o que eu realmente precisava era renomear os arquivos para algo mais óbvio, como webinar1.png, webinar2.png, e assim por diante. Por sorte, renomear um monte de arquivos é muito fácil de fazer na linha de comando do Linux.

O shell Bash é muito versátil e oferece diferentes alternativas para examinar valores e expandir variáveis. Uma boa avaliação é 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 variável, O que $sum resolver em um valor. Mas por conveniência, qualquer variável Bash listada entre $(( e )) expandir automaticamente. Como um exemplo, para incrementar a contagem de uma variável por 1, Você pode digitar:

contagem = $(( contar + 1 ))

Isso é o mesmo que digitar:

contagem = $(( $contar + 1 ))

A expansão aritmética suporta os mesmos operadores encontrados em outras linguagens de programação, incluído + e - para adicionar e subtrair, * 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. Veja a página de manual do Bash e role para baixo até AVALIAÇÃO ARITMÉTICA para a lista completa de operadores suportados e sua precedência.

Para renomear todas as minhas capturas de tela, Eu precisava escrever este comando bash de uma linha:

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

Mas, o que isto?

A primeira parte do comando, n=1, inicializar a variável n uma 1.

Então eu uso um for loop para operar em todos os arquivos começando com Screenshot e terminar com .png extensão. Em geral, essas são todas as imagens que eu capturei durante meu último webinar. Se eu tivesse que ser mais preciso, você pode incluir a data na especificação do arquivo, O que Screenshot from 2020-11-29*.png. 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. Então o mv comando mv -v "$f" webinar$n.png renomeie cada arquivo com meus nomes preferidos, como webinar1.png , webinar2.png , e assim por diante. Eu preciso de compromissos em torno do $f expansão variável para que os espaços em Screenshot from YYYY-MM-DD hh-mm-ss.png não cause problemas em mim mv comando. Se você receber um erro como mv: target 'webinar1.png' is not a directory, você provavelmente não colocou aspas em torno do $f.

Em resumo, aumentar o valor no n variável de modo que esteja pronto para a próxima iteração no loop. Expansão aritmética n=$(( n + 1 )) aumentar o n variável em 1.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.