Você pode usar o comando date
para a tarefa de incluir a data e a hora reais no nome do arquivo. Vamos ver o que podemos encontrar na página date
man :
OPERANDES
The following operands shall be supported: +format When the format is specified, each conversion specifier shall be replaced in the standard output by its corresponding value. All other characters shall be copied to the output without change. The output shall always be terminated with a <newline>.
Especificações de conversão % o nome abreviado do dia da semana de um local.
%A Locale's full weekday name. %b Locale's abbreviated month name. %B Locale's full month name. %c Locale's appropriate date and time representation. %C Century (a year divided by 100 and truncated to an integer) as a decimal number [00,99]. %d Day of the month as a decimal number [01,31]. %D Date in the format mm/dd/yy. %e Day of the month as a decimal number [1,31] in a two- digit field with leading <space> character fill. %h A synonym for %b. %H Hour (24-hour clock) as a decimal number [00,23]. %I Hour (12-hour clock) as a decimal number [01,12]. %j Day of the year as a decimal number [001,366]. %m Month as a decimal number [01,12]. %M Minute as a decimal number [00,59]. %n A <newline>. %p Locale's equivalent of either AM or PM. %r 12-hour clock time [01,12] using the AM/PM notation; in the POSIX locale, this shall be equivalent to %I:%M:%S %p. %S Seconds as a decimal number [00,60]. %t A <tab>. %T 24-hour clock time [00,23] in the format HH:MM:SS. %u Weekday as a decimal number [1,7] (1=Monday). %U Week of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday shall be considered to be in week 0. %V Week of the year (Monday as the first day of the week) as a decimal number [01,53]. If the week containing January 1 has four or more days in the new year, then it shall be considered week 1; otherwise, it shall be the last week of the previous year, and the next week shall be week 1. %w Weekday as a decimal number [0,6] (0=Sunday). %W Week of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday shall be considered to be in week 0. %x Locale's appropriate date representation. %X Locale's appropriate time representation. %y Year within century [00,99]. %Y Year with century as a decimal number. %Z Timezone name, or no characters if no timezone is determinable. %% A <percent-sign> character. See the Base Definitions volume of POSIX.1‐2008, Section 7.3.5, LC_TIME for the conversion specifier values in the POSIX locale.
Como date
não pode ter espaços formatados em sua saída, você teria que usar dois comandos de data como mostrado abaixo, primeiro para a data em que você pode usar +\%Y.\%m.\%d
como um parâmetro que resultará em um formato de data como 2017.12.07
e pelo tempo em que você pode usar +\%H:\%M:\%S
, o que resultará em um formato como 20:37:18
.
A opção da área de transferência ( -c
) não funciona junto com a opção salvar como nome do arquivo ( -f
) de gnome-screenshot
, portanto você deve escolher qualquer uma delas. Este comando fará isso (apenas edite o c
de volta se você precisar da área de transferência, mas deixe o f
e o nome do arquivo fora, ambos não funcionarão juntos):
gnome-screenshot -af "Screenshot from $(date +\%Y.\%m.\%d) $(date +\%H:\%M:\%S).png"
Ele gera um nome de arquivo como o seguinte (apenas com a data e hora atuais em que você chama este comando):
Screenshot from 2017.12.07 20:37:18.png
Isso, entretanto, armazenará o arquivo dentro do diretório em que você está atualmente, para adicionar um caminho como ~/Pictures
você precisa fornecer um caminho completo, pois ~
não é expandido dentro das aspas. O seguinte salvaria os arquivos, por exemplo, na pasta de imagens:
gnome-screenshot -af "/home/$USER/Pictures/Screenshot from $(date +\%Y.\%m.\%d) $(date +\%H:\%M:\%S).png"
Ou você se livra das aspas, o que significa que você pode usar o til ( ~
), mas você precisa escapar de todos os espaços no nome:
gnome-screenshot -af ~/Pictures/Screenshot\ from\ $(date +\%Y.\%m.\%d)\ $(date +\%H:\%M:\%S).png
Veja man date
e man gnome-screenshot
, bem como Manual de referência do bash para mais detalhes.