Cómo cambiar el nombre de las capturas de pantalla en Linux

Contenidos

Bash Shell

Muchos sistemas Linux de escritorio guardan capturas de pantalla con nombres como Screenshot from 2020-11-29 18-57-51.png. A menudo, lo que verdaderamente necesitaba era cambiar el nombre de los archivos a algo más obvio como webinar1.png, webinar2.png, etcétera. Por suerte, cambiar el nombre de un montón de archivos es muy fácil de hacer en la línea de comandos de Linux.

El shell Bash es muy versátil y proporciona diferentes alternativas para examinar valores y expandir variables. Una buena evaluación es evaluación aritmética. Para realizar esta evaluación, envuelva su declaración aritmética con $(( y )).

La evaluación además puede incluir expansión variable, como $sum para solucionar en un valor. Pero por conveniencia, cualquier variable de Bash listada entre $(( y )) se expanden automáticamente. A modo de ejemplo, para incrementar el recuento de una variable en 1, puede escribir:

count=$(( count + 1 ))

Esto es lo mismo que escribir:

count=$(( $count + 1 ))

La expansión aritmética admite los mismos operadores que se encuentran en otros lenguajes de programación, incluidos + y - para sumar y restar, * y / para multiplicación y división, y % para el resto. Además puedes utilizar ++ y -- para incrementar y reducir un valor en una variable. Consulte la página de manual de Bash y desplácese hacia abajo hasta EVALUACIÓN ARITMÉTICA para obtener la lista completa de operadores admitidos y su precedencia.

Para cambiar el nombre de todas mis capturas de pantalla, necesitaba escribir este comando Bash de una línea:

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

Pero, ¿qué hace esto?

La primera parte del comando, n=1, inicializa la variable n a 1.

Entonces uso un for bucle para operar en todos los archivos que comienzan con Screenshot y terminar con el .png extensión. Por lo general, estas son todas las capturas de pantalla que capturé durante mi último seminario web. Si tuviera que ser más preciso, podría incluir la fecha en esa especificación de archivo, como Screenshot from 2020-11-29*.png. Las barras diagonales inversas son escapes literales para conservar los espacios en el nombre del archivo.

Cada iteración del bucle for almacena un nombre de archivo en la variable f. Entonces el mv mando mv -v "$f" webinar$n.png cambia el nombre de cada archivo a mis nombres de archivo preferidos como webinar1.png , webinar2.png , etcétera. Necesito citas alrededor del $f expansión variable para que los espacios en Screenshot from YYYY-MM-DD hh-mm-ss.png no provoques problemas en mi mv mando. Si recibe un error como mv: target 'webinar1.png' is not a directory, probablemente no pusiste comillas alrededor del $f.

En resumen, incremento el valor en el n variable para que esté lista para la próxima iteración en el ciclo. La expansión aritmética n=$(( n + 1 )) incrementa el n variable en 1.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.