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

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 realmente necesitaba era cambiar el nombre de los archivos a algo más obvio como webinar1.png, webinar2.png, y así. Afortunadamente, 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 formas de evaluar 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 también puede incluir expansión variable, como $sum para resolver en un valor. Pero por conveniencia, cualquier variable de Bash listada entre $(( y )) se expanden automáticamente. Por 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. También puedes usar ++ y -- para incrementar y disminuir 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 invertidas son escapes literales para preservar 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 , y así. 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.

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

Deja un comentario

En esta web usamos cookies para personalizar tu experiencia de usuario.    Política de cookies
Privacidad