¿Cómo cambia el formato del nombre del archivo de captura de pantalla OSX?

6

Me gustaría que mis capturas de pantalla se nombren solo con la fecha y hora actuales, preferiblemente en un formato como:

2016-09-02-16:02:48

¿Cómo debo hacer para hacer esto?

Hasta ahora he intentado insertar una cadena vacía en com.apple.screencapture name

como se muestra:

$ defaults write com.apple.screencapture name ""
$ killall SystemUIServer

Pero OSX todavía está insertando un espacio como se muestra a continuación:

Entonces hay dos problemas que estoy teniendo:

  1. ¿Cómo cambio el formato de fecha y hora para que no haya espacios?
  2. ¿Cómo me aseguro de que no haya ningún espacio inicial en el nombre de archivo de la captura de pantalla?

Gracias :)

    
pregunta mbigras 03.09.2016 - 01:08

3 respuestas

2

Tampoco puede cambiar el nombre de un archivo al nombre propuesto, ya que contiene varios dos puntos ( : ), que son caracteres reservados (= prohibidos) en el sistema de archivos HFS +, y defaults write com.apple.screencapture ... no permite un formato de fecha diferente.

Sin embargo, una idea es crear un agente de inicio para cambiar el nombre de todos los archivos en una carpeta dedicada que comienza con "Captura de pantalla ...":

Una solución muy simple, suponiendo que restaure la convención de nomenclatura predeterminada para capturas de pantalla y reemplace nombre_usuario por su nombre corto a continuación, es:

Cree un archivo llamado "screencaprn" en, por ejemplo, / usr / local / bin con el contenido:

#!/bin/bash

mv /Users/user_name/Desktop/Screen\ Shot*.png /Users/user_name/Desktop/"'date "+%Y-%m-%d-%H.%M.%S"'.png"; $2>/dev/null

Cambiar permisos:

chmod +x /usr/local/bin/screencaprn

Luego cree un agente de inicio en ~ / Library / LaunchAgents con el nombre "usr.screenshot.rename.plist" y el contenido:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>usr.screenshot.rename</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>-c</string>
        <string>/usr/local/bin/screencaprn</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Users/user_name/Desktop</string>
    </array>
</dict>
</plist>

Luego carga el plist con:

launchctl load ~/Library/LaunchAgents/usr.screenshot.rename.plist

Esto funciona pero tiene un retraso de hasta 10 segundos (por lo tanto, cambia los segundos y, a veces, los minutos del archivo de captura de pantalla con el nombre original, por ejemplo, Captura de pantalla 2016-09-03 a las 03.24. 02 .png a 2016-09-03-03.24. 05 .png ) y agrega una com.apple.xpc.launchd [1] (usr.screenshot.rename): el servicio solo se ejecutó durante X segundos. Presionando el respawn out por Y segundos. línea en el registro del sistema.

    
respondido por el klanomath 03.09.2016 - 03:13
0

Consulte ¿Cómo ¿Cambio el nombre de captura de pantalla predeterminado en OS X Lion? para cambiar el resto del nombre. El espacio se inserta con el formato de cadena indicado en el archivo de cadenas, probablemente debido a la necesidad de localización de los valores de fecha y hora. Si combina el cambio del prefijo de nombre de lista con el cambio del sello de formato con formato, puede hacer que haga lo que quiera.

    
respondido por el John Keates 03.09.2016 - 07:31
0

Otra solución es un demonio de larga duración que se suscribe al servicio de modificación de archivos y cambia los nombres de los archivos cuando se crean.

    
respondido por el vy32 09.06.2018 - 23:52

Lea otras preguntas en las etiquetas