Agence web » Actualités du digital » Comment renommer des captures d’écran sous Linux –

Comment renommer des captures d’écran sous Linux –

une-breve-histoire-d39unix-cloudsavvy-it-7337062

De nombreux systèmes Linux de bureau enregistrent des captures d’écran avec des noms tels que Screenshot from 2020-11-29 18-57-51.png. Souvent, vous aviez vraiment besoin de renommer les fichiers en quelque chose de plus évident comme webinar1.png, webinar2.png, etc. Heureusement, renommer un tas de fichiers est vraiment facile à faire sur la ligne de commande Linux.

Le shell Bash est très polyvalent et propose différentes manières d’évaluer les valeurs et d’étendre les variables. Une évaluation soignée est évaluation arithmétique. Pour effectuer cette évaluation, enveloppez votre instruction arithmétique avec $(( et )).

L’évaluation peut également inclure une expansion variable, comme $sum à résoudre en une valeur. Mais pour plus de commodité, toutes les variables Bash répertoriées entre $(( et )) sont développés automatiquement. Par exemple, pour incrémenter un nombre de variables de 1, vous pouvez taper:

count=$(( count + 1 ))

C’est la même chose que de taper:

count=$(( $count + 1 ))

L’expansion arithmétique prend en charge les mêmes opérateurs que dans d’autres langages de programmation, y compris + et - pour l’addition et la soustraction, * et / pour la multiplication et la division, et % pour le reste. Vous pouvez aussi utiliser ++ et -- pour incrémenter et décrémenter une valeur dans une variable. Consultez la page de manuel pour Bash et faites défiler jusqu’à ÉVALUATION ARITHMÉTIQUE, pour la liste complète des opérateurs pris en charge et leur priorité.

Pour renommer toutes mes captures d’écran, j’avais besoin d’écrire cette commande Bash en une ligne:

n=1; for f in Screenshot*.png; do mv -v "$f" webinar$n.png; n=$(( n + 1 )); done

Mais qu’est-ce que cela fait?

La première partie de la commande, n=1, initialise la variable n à 1.

Ensuite, j’utilise un for boucle pour opérer sur tous les fichiers commençant par Screenshot et terminer avec le .png extension. Ce sont généralement toutes les captures d’écran que j’ai prises lors de mon dernier webinaire. Si j’avais besoin d’être plus précis, je pourrais inclure la date dans cette spécification de fichier, telle que Screenshot from 2020-11-29*.png. Les barres obliques inverses sont des échappements littéraux pour conserver les espaces dans le nom de fichier.

Chaque itération de la boucle for stocke un nom de fichier dans la variable f. Alors le mv commander mv -v "$f" webinar$n.png renomme chaque fichier avec mes noms de fichiers préférés comme webinar1.png , webinar2.png , etc. J’ai besoin de citations autour du $f expansion variable de sorte que les espaces Screenshot from YYYY-MM-DD hh-mm-ss.png ne pose pas de problèmes dans mon mv commander. Si vous obtenez une erreur comme mv: target 'webinar1.png' is not a directory, vous n’avez probablement pas mis de guillemets autour du $f.

Enfin, j’incrémente la valeur dans le n variable afin qu’il soit prêt pour la prochaine itération de la boucle. L’expansion arithmétique n=$(( n + 1 )) incrémente le n variable par 1.

★★★★★