A mí tampoco me gusta el formato de Apple, y me decepciona que no hayan proporcionado un método para que los usuarios lo personalicen. Comencé a pensar en esto hace un año, pero surgió algo, y se fue a la proyectos inacabados carpeta - ahora una carpeta bastante grande :) De todos modos, la saqué y resolví el problema de conversión de fechas que me había dejado perplejo el año pasado. Aquí está:
A zsh
script para renombrar en bloque las capturas de pantalla de Apple:
#!/bin/zsh
# shotfnmv.sh
cd $HOME/TestShots
for afile in *.png
do
echo $afile
oldfile=$(basename "$afile")
echo $oldfile
if [[ $oldfile == *"Screen Shot"* ]]; then
echo "Found an Apple-formatted Screen Shot file."
oldtimestr=$(echo "$oldfile" | awk '{ printf "%s-%s_%s\n", $3, $5, substr($6,1,2) }')
echo $oldtimestr
newtimestr=$(date -j -f %Y-%m-%d-%I.%M.%S_%p "$oldtimestr" "+%Y-%m-%d-%T")
echo $newtimestr
newfile="screenshot-${newtimestr}.png"
echo $newfile
# mv "$oldfile" "$newfile" # overwrite fienames in place
cp -np "$oldfile" "$newfile" # copy file to same dir, new name
# cp -np "$oldfile" ../TestShots2/"$newfile" # copy file to different dir, new name
fi
done
El date
y awk
utilidades son "nativas de Apple", es decir, son fechado en de la versión BSD de Unix. I piense en el scriptse ejecutará en un bash
shell también, pero no lo he probado.
He probado el script ligeramente en mi MBP MacOS 10.15.6, pero no hizo ningún esfuerzo para "limpiarlo" . Todavía contiene varios echo
comandos insertados para la depuración, y el estilo es pesado porque no soy muy bueno en esto. ¡Hay muchas mejoras que se pueden hacer!
He probado esto en mi sistema y parece que funciona. Sin embargo, pido precaución porque Apple es libre de cambiar el formato de los nombres de los archivos sin previo aviso, y no lo he probado a fondo contra una amplia variedad de nombres de archivo.
Mis resultados de la prueba:
He creado un directorio ( $HOME/TestShots
) y lo rellené con archivos seleccionados de mi capturas de pantalla la carpeta que he configurado como destino para todas las capturas de pantalla:
% ls -l TestShots
total 128016
-rw-r--r--@ 1 seamus staff 63497905 Jan 22 2020 Screen Recording 2020-01-22 at 5.22.25 PM.mov
-rw-r--r--@ 1 seamus staff 408602 Oct 22 2020 Screen Shot 2020-10-22 at 11.36.03 PM_R-5100.png
-rw-r--r--@ 1 seamus staff 249838 Jan 1 18:14 Screen Shot 2022-01-01 at 6.14.53 PM.png
-rw-r--r--@ 1 seamus staff 101905 Jan 10 18:44 Screen Shot 2022-01-10 at 6.44.47 PM.png
-rw-r--r--@ 1 seamus staff 61287 Jan 10 19:31 Screen Shot 2022-01-10 at 7.31.51 PM.png
-rw-r--r--@ 1 seamus staff 315761 Jan 11 22:44 Screen Shot 2022-01-11 at 10.43.55 PM.png
-rw-r--r--@ 1 seamus staff 75392 Feb 1 14:32 Screen Shot 2022-02-01 at 2.31.54 PM.png
-rw-r--r--@ 1 seamus staff 274953 Feb 8 00:33 Screen Shot 2022-02-08 at 12.33.23 AM.png
-rw-r--r--@ 1 seamus staff 274220 Feb 8 00:37 Screen Shot 2022-02-08 at 12.37.40 AM.png
-rw-r--r--@ 1 seamus staff 268142 Feb 9 18:01 Screen Shot 2022-02-09 at 6.01.29 PM.png
Después de ejecutar el anterior script mientras se utiliza el # copy file to same dir, new name
"opción" :
% pwd
/Users/seamus
% ./shotfnmv.sh | less
% ls -l TestShots
total 132008
-rw-r--r--@ 1 seamus staff 63497905 Jan 22 2020 Screen Recording 2020-01-22 at 5.22.25 PM.mov
-rw-r--r--@ 1 seamus staff 408602 Oct 22 2020 Screen Shot 2020-10-22 at 11.36.03 PM_R-5100.png
-rw-r--r--@ 1 seamus staff 249838 Jan 1 18:14 Screen Shot 2022-01-01 at 6.14.53 PM.png
-rw-r--r--@ 1 seamus staff 101905 Jan 10 18:44 Screen Shot 2022-01-10 at 6.44.47 PM.png
-rw-r--r--@ 1 seamus staff 61287 Jan 10 19:31 Screen Shot 2022-01-10 at 7.31.51 PM.png
-rw-r--r--@ 1 seamus staff 315761 Jan 11 22:44 Screen Shot 2022-01-11 at 10.43.55 PM.png
-rw-r--r--@ 1 seamus staff 75392 Feb 1 14:32 Screen Shot 2022-02-01 at 2.31.54 PM.png
-rw-r--r--@ 1 seamus staff 274953 Feb 8 00:33 Screen Shot 2022-02-08 at 12.33.23 AM.png
-rw-r--r--@ 1 seamus staff 274220 Feb 8 00:37 Screen Shot 2022-02-08 at 12.37.40 AM.png
-rw-r--r--@ 1 seamus staff 268142 Feb 9 18:01 Screen Shot 2022-02-09 at 6.01.29 PM.png
-rw-r--r--@ 1 seamus staff 408602 Oct 22 2020 screenshot-2020-10-22-23:36:03.png
-rw-r--r--@ 1 seamus staff 249838 Jan 1 18:14 screenshot-2022-01-01-18:14:53.png
-rw-r--r--@ 1 seamus staff 101905 Jan 10 18:44 screenshot-2022-01-10-18:44:47.png
-rw-r--r--@ 1 seamus staff 61287 Jan 10 19:31 screenshot-2022-01-10-19:31:51.png
-rw-r--r--@ 1 seamus staff 315761 Jan 11 22:44 screenshot-2022-01-11-22:43:55.png
-rw-r--r--@ 1 seamus staff 75392 Feb 1 14:32 screenshot-2022-02-01-14:31:54.png
-rw-r--r--@ 1 seamus staff 274953 Feb 8 00:33 screenshot-2022-02-08-00:33:23.png
-rw-r--r--@ 1 seamus staff 274220 Feb 8 00:37 screenshot-2022-02-08-00:37:40.png
-rw-r--r--@ 1 seamus staff 268142 Feb 9 18:01 screenshot-2022-02-09-18:01:29.png
Tenga en cuenta que el nombre del archivo Screen Recording ...
no fue reformulado con la lógica de script, y que el no estándar Screen Shot
nombre de archivo que termina en PM_R-5100.png
fue renombrado, pero la parte "personalizada" del nombre del archivo se perdió.
Espero que le resulte útil y que nos haga saber si tiene alguna pregunta.