Come si modifica il formato del nome del file dello schermo OSX?

6

Mi piacerebbe che i miei screenshot fossero nominati con l'ora corrente, preferibilmente in un formato come:

2016-09-02-16:02:48

Come dovrei andare a fare questo?

Finora ho provato a inserire una stringa vuota in com.apple.screencapture name

come mostrato:

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

Ma OSX sta ancora inserendo uno spazio come mostrato di seguito:

Quindi ho due problemi:

  1. Come faccio a cambiare il formato della data e quindi non ci sono spazi?
  2. Come faccio a essere sicuro che non ci sia spazio in testa nello screenshot nomefile?

Grazie:)

    
posta mbigras 03.09.2016 - 01:08
fonte

3 risposte

2

Non puoi rinominare un file con il nome proposto - contiene diversi punti ( : ) che sono riservati (= vietato) caratteri nel file system HFS + - né defaults write com.apple.screencapture ... consente un diverso formato di data.

Un'idea è la creazione di un launch agent per rinominare tutti i file in una cartella dedicata che inizia con "Screen Shot ...":

Una soluzione molto semplice, supponendo che tu ripristini la convenzione di denominazione predefinita per gli screenshot e sostituisca nome_utente con il tuo nome breve sotto, è quindi:

Crea un file chiamato "screencaprn" in e.g / usr / local / bin con il contenuto:

#!/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

Cambia permessi:

chmod +x /usr/local/bin/screencaprn

Quindi crea un agente di lancio in ~ / Library / LaunchAgents con il nome "usr.screenshot.rename.plist" e il contenuto:

<?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>

Quindi caricare il plist con:

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

Funziona ma ha un ritardo di fino a 10 secondi (cambia quindi i secondi e talvolta i minuti del file di screenshot nominato originale, ad esempio Screen Shot 2016-09-03 alle 03.24. 02 .png a 2016-09-03-03.24. 05 .png ) e aggiunge uno com.apple.xpc.launchd [1] (usr.screenshot.rename): il servizio è stato eseguito solo per X secondi. Spingendo il respawn da Y secondi. linea al registro di sistema.

    
risposta data 03.09.2016 - 03:13
fonte
0

Vedi Come fare Cambio il nome predefinito della schermata in OS X Lion? per cambiare il resto del nome. Lo spazio viene inserito dal formato di stringa indicato nel file di stringhe, molto probabilmente a causa della necessità di localizzazione dei valori di data e ora. Se si combinano cambiando il prefisso del nome plist con la modifica del foglio di testo formattato, è possibile farlo fare ciò che si desidera.

    
risposta data 03.09.2016 - 07:31
fonte
0

Un'altra soluzione è un daemon di lunga durata che si abbona al servizio di modifica file e modifica i nomi dei file quando vengono creati.

    
risposta data 09.06.2018 - 23:52
fonte

Leggi altre domande sui tag