Как я могу автоматически сгенерировать имя файла для gnome-screenshot?
Я хотел бы использовать следующую команду:
$ gnome-screenshot -caf=<file name>
Как я могу передать что-то автоматически сгенерированное, как Screenshot from 2017-12-07 20-22-56.png
за <file name>
?
1 ответ
Вы можете использовать date
команда для включения фактической даты и времени в имя файла. Давайте посмотрим, что мы можем найти в date
справочная страница:
ОПЕРАНДЫ
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>.
Характеристики конверсии% сокращенного названия дня недели для локали.
%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.
поскольку date
Вы не можете использовать пробелы, отформатированные в выходных данных. Вам нужно использовать две команды даты, как показано ниже, сначала для даты, которую вы можете использовать. +\%Y.\%m.\%d
в качестве параметра, который приведет к формату даты, как 2017.12.07
и на время вы можете использовать +\%H:\%M:\%S
что приведет к формату, как 20:37:18
,
Опция буфера обмена (-c
) не работает вместе с опцией сохранить как имя файла (-f
) из gnome-screenshot
так что вы должны выбрать один из них. Эта команда сделает это (просто отредактируйте c
вернуться, если вам нужен буфер обмена, но затем позвольте f
и имя файла, оба не будут работать вместе):
gnome-screenshot -af "Screenshot from $(date +\%Y.\%m.\%d) $(date +\%H:\%M:\%S).png"
Он генерирует имя файла, подобное следующему (только с фактической датой и временем, когда вы вызываете эту команду):
Screenshot from 2017.12.07 20:37:18.png
Это, однако, сохранит файл в каталоге, в котором вы сейчас находитесь, чтобы добавить путь ~/Pictures
Вы должны предоставить полный путь, так как ~
не раскрывается внутри кавычек. Следующее будет сохранять файлы, например, в папке с изображениями:
gnome-screenshot -af "/home/$USER/Pictures/Screenshot from $(date +\%Y.\%m.\%d) $(date +\%H:\%M:\%S).png"
Или вы избавляетесь от кавычек, которые означают, что вы можете использовать тильду (~
) но тогда вы должны экранировать все пробелы в имени:
gnome-screenshot -af ~/Pictures/Screenshot\ from\ $(date +\%Y.\%m.\%d)\ $(date +\%H:\%M:\%S).png
Увидеть man date
а также man gnome-screenshot
а также справочное руководство Bash для получения более подробной информации.