Архив с датой в имени файла
Давно искал нечто подобное. Как ни мощна утилита date, но запомнить необходимые ключи для превращения даты в строку вида «2010-11-17» довольно затруднительно. Во-первых, вместо привычного знака ключа в виде минуса нужно помнить, что при форматировании используются знаки "+" и "%". Во-вторых, логику в форматах обнаружить довольно сложно:
Т.е. нужно держать в голове, что Y должно быть заглавное, а m — месяцы, а не минуты (минуты — M). А еще месяцы могут обозначаться как %b, %B. К тому же в некоторых языках программирования нумерация месяцев начинается с 0 и это тоже требует некоторых мозговых усилий. Т.е. каждый раз при формировании строки начинаются «пробы и ошибки», заканчивающиеся чтением man'а и тихими матюгами.
Оказывается, всё гораздо проще:
ISO — система международных стандартов, в которой, помимо всего прочего, описывается как формировать строку для обозначения даты. Именно такие строки-даты используются, например в SQL. Они правильно сортируются, свободны от проблемы 2000, понятны для восприятия (от большего, т.е. года, к меньшему, т.е. дню месяца).
А создать архив, содержащий в имени файла дату своего создания, можно так:
или так
$ date +%F
2010-11-17
$ date +%Y-%m-%d
2010-11-17
Т.е. нужно держать в голове, что Y должно быть заглавное, а m — месяцы, а не минуты (минуты — M). А еще месяцы могут обозначаться как %b, %B. К тому же в некоторых языках программирования нумерация месяцев начинается с 0 и это тоже требует некоторых мозговых усилий. Т.е. каждый раз при формировании строки начинаются «пробы и ошибки», заканчивающиеся чтением man'а и тихими матюгами.
Оказывается, всё гораздо проще:
$ date --iso
2010-11-17
ISO — система международных стандартов, в которой, помимо всего прочего, описывается как формировать строку для обозначения даты. Именно такие строки-даты используются, например в SQL. Они правильно сортируются, свободны от проблемы 2000, понятны для восприятия (от большего, т.е. года, к меньшему, т.е. дню месяца).
А создать архив, содержащий в имени файла дату своего создания, можно так:
tar cfz backup-$(date --iso).tar.gz somedirs
или так
tar cfz backup-`date --iso`.tgz somedirs
Комментарии (1)
RSS свернуть / развернутьЯ так вел архивы действий операторов системы управления.
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.