Создать файл с именем даты linux

Содержание
  1. Добавить дату в имя файла в linux
  2. ⏱️ Как создать каталоги или файлы с именами на текущую дату/время/месяц/год на Linux
  3. Создание каталогов или файлов с именами текущей даты / времени / месяца / года на Linux
  4. Создание каталогов или файлов с произвольным именем с текущей датой
  5. Создание каталогов файлов в формате ISO
  6. Больше примеров
  7. Добавить комментарий Отменить ответ
  8. • Свежие записи
  9. • Категории
  10. • itsecforu.ru
  11. • Страны посетителей
  12. IT is good
  13. Создать файл с именем даты linux
  14. Формат ввода даты и времени
  15. Формат вывода даты и времени
  16. Примеры использования
  17. Получение текущих даты и времени
  18. Добавление текущей даты в имена создаваемых файлов
  19. Установка текущих даты и времени
  20. Использование утилиты на удаленных системах
  21. Самый быстрый способ присвоить имени файла текущую дату в Linux
  22. 3 ответа 3
  23. Команда Date в Linux с примерами
  24. Linux Date Command with Examples
  25. В этом руководстве мы рассмотрим основы date команды.
  26. Использование Date
  27. Параметры форматирования даты
  28. Пользовательское форматирование даты
  29. Переопределить часовой пояс
  30. Конвертер эпох
  31. Использование date с другими командами
  32. Показать время последнего изменения файла
  33. Установите системное время и дату
  34. Вывод

Добавить дату в имя файла в linux

Я хочу добавить дату рядом с именем файла ( “somefile.txt” ). Например: somefile_25-11-2009.txt или somefile_25Nov2009.txt или что-нибудь в этом роде

Возможно, будет script или какая-либо команда в окне терминала. Я использую Linux (Ubuntu).

О, я почти забыл добавить, что script или команда должна обновлять имя файла до новой даты каждый раз, когда вы хотите сохранить файл в определенной папке, но сохраняя предыдущие файлы. Таким образом, в папке будут файлы вроде этого: filename_18Oct2009.txt, filename_9Nov2009.txt, filename_23Nov2009.txt

Здесь есть две проблемы.

1. Получить дату в виде строки

Это довольно легко. Просто используйте команду date с опцией + . Мы можем использовать backticks для захвата значения в переменной.

Вы можете изменить формат даты, используя различные параметры % , как описано на странице .

2. Разделите файл на имя и расширение.

Это немного сложнее. Если мы думаем, что в имени файла будет только один . , мы можем использовать cut с . как разделитель.

Однако это не будет работать с несколькими . в имени файла. Если мы используем bash — который вы, вероятно, используете, мы можем использовать магию bash, которая позволяет нам сопоставлять шаблоны при изменении переменной:

Объединяя их, мы получаем:

И если нас меньше беспокоит читаемость, мы делаем всю работу в одной строке (с другим форматом даты):

Вы можете использовать обратные ссылки.

немного более сложное решение, которое полностью соответствует вашей спецификации

где first ‘expr’ извлекает имя файла без расширения, второе расширение expr расширяет

Источник

⏱️ Как создать каталоги или файлы с именами на текущую дату/время/месяц/год на Linux

Показанные далее команды создадут каталоги или файлы с именами с текущей датой или временем на основе часов вашего компьютера.

Создание каталогов или файлов с именами текущей даты / времени / месяца / года на Linux

Чтобы создать каталог и назвать его текущей датой, просто запустите:

Эта команда создаст каталог и назовет его сегодняшней датой в формате dd: mm: yyyy.

Создание каталогов или файлов с произвольным именем с текущей датой

Как насчет пользовательского имени для каталога или файла с датой / временем / месяцем / годом?

Это также возможно.

Создание каталогов файлов в формате ISO

Если вы хотите использовать формат даты ISO (например, 2020-06-06), запустите:

Все вышеперечисленные три команды дают одинаковый результат.

Для создания файлов просто замените mkdir командой «touch».

Больше примеров

Если вы хотите только день текущей даты, используйте:

Эта команда создаст каталог только с текущим днем в имени. т.е. 06.

Точно так же вы можете создавать каталоги с именем текущего месяца только в имени:

Обратите внимение что S – заглавная

Чтобы назвать каталог с текущими минутами, используйте заглавную M:

Во всех приведенных выше примерах мы создали каталоги с номерами на их именах.

Что если вы хотите назвать каталоги с фактическим названием текущего дня / месяца, например, Saturday, October и т. д.?

Добавить комментарий Отменить ответ

• Свежие записи

• Категории

• itsecforu.ru

• Страны посетителей

IT is good

Источник

Создать файл с именем даты linux

Команда date позволяет задействовать одноименную утилиту, которая используется для двух целей. Обычно она используется для получения текущих даты и времени при необходимости в заданном формате, но при этом она также позволяет устанавливать их.

Читайте также:  Daemon tools lite ошибка доступ запрещен windows 10

Стандартный синтаксис команды выглядит следующим образом:

$ date [описание времени или формата вывода]

Формат ввода даты и времени

Для начала рассмотрим вопрос установки текущих даты и времени, так как данное действие выполняется достаточно просто (единственная сложность связана с запоминанием формата даты и времени). Вы можете самостоятельно выполнить команду man date для того, чтобы уточнить формат даты и времени, используемый в вашей системе. В большинстве случаев он является следующим:

Но все не так сложно, как кажется на первый взгляд. Параметры в квадратных скобках являются необязательными — вы можете как использовать их, так и отказаться от их использования. Каждая пара букв соответствует элементу записи даты или времени:

Элемент записи Назначение
MM Месяц (от 01 до 12)
DD День (от 01 до 28, 29, 30 или 31 в зависимости от месяца)
hh Часы (от 00 до 24)
mm Минуты (от 00 до 59)
YY Две последние цифры года (от 00 до 99, не обязательно)
CC Век (от 00 до 99, используется вместе с предыдущим элементом, не обязательно)
.ss Секунды (от 00 до 59 с символом точки, не обязательно)

Как утилита вычисляет век? В UNIX-подобных операционных системах время хранится в формате числа секунд, прошедших с 1 января 1970 года в часовом поясе GMT (также известном, как UTC). Из-за того, что с этой даты прошло достаточно много времени, а для хранения количества секунд в 32-битных системах используется 4-байтовое целочисленное значение, в 2038 году на этих системах должен произойти переход счетчика секунд через нулевое значение. Ввиду того, что подсчитывается лишь количество секунд, век попросту не принимается во внимание. Таким образом, на 32-битных системах значения года от 00 до 38 соответствуют 2000-м годам, а значения года от 70 до 99 — 1900 годам. Фактически, на 32-битных системах команда date не позволяет установить год, не входящий в приведенные выше диапазоны. В 64-битных системах все проще: для подсчета времени используется 8-байтовое целочисленное значение, поэтому имеется огромный запас по времени (292 миллиарда лет), доступен полный диапазон годов от 00 до 99, а век вычисляется обычным образом по количеству прошедших секунд.

Для установки текущих даты и времени необходимы права пользователя root, иначе вы получите аналогичное сообщение об ошибке:

date: невозможно установить дату: Операция не позволена

Формат вывода даты и времени

Команда date без параметров хороша в том случае, если вам нужно узнать текущие дату в время. Но функция вывода даты и времени в произвольном формате полезна при разработке сценариев командной оболочки. Иногда нужно использовать максимально краткую запись даты; иногда в сценарии нужно обрабатывать лишь время без даты; иногда дату и время приходится сравнивать с датой и временем из внешнего источника и это сравнение будет гораздо более простым в случае получения текущих даты и времени в том же формате, в котором передаются данные из внешнего источника.

Для форматирования текущих даты и времени в соответствии со своими предпочтениями пользователь должен передать утилите строку форматирования после символа +:

Строка форматирования состоит из параметров форматирования, приведенных в таблице ниже.

Параметр форматирования Назначение Пример вывода
%a Сокращенное название дня недели Чт
%A Полное название дня недели Четверг
%b Сокращенное название месяца июн
%B Полное название месяца Июнь
%d Номер дня недели 08
%D Текущая дата в формате ММ/ДД/ГГ 06/08/17
%F Текущая дата в формате ГГГГ/ММ/ДД 2017-06-08
%H Часы в 24-часовом формате в диапазоне от 00 до 23 18
%l Часы в 12-часовом формате в диапазоне от 01 до 12 6
%j Номер дня года в диапазоне от 001 до 366 159
%m Номер месяца в диапазоне от 01 до 12 06
%M Минуты в диапазоне от 00 до 59 24
%S Секунды в диапазоне от 00 до 60 22
%N Наносекунды в диапазоне от 000000000 до 999999999 335288238
%T Время в формате ЧЧ:ММ:СС в 24-часовом формате 18:24:22
%u Номер дня недели в диапазоне от 1 до 7 4
%U Номер недели в году в диапазоне от 00 до 53 23
%Y Полный номер года 2017
%Z Обозначение часового пояса MSK
Читайте также:  Не работает деинсталлятор windows 10

Примеры использования

Получение текущих даты и времени

Для получения текущих даты и времени в стандартном формате достаточно выполнить следующую команду:

Утилита выведет аналогичную информацию:

Чт июн 8 15:12:21 MSK 2017

Для вывода даты и/или времени в пользовательском формате достаточно добавить символ + и строку форматирования. Например, для вывода даты и времени может использоваться команда:

В результате будет выведена следующая информация:

Добавление текущей даты в имена создаваемых файлов

Отличным примером использования команды date в сценариях является создание суффикса имени файла для автоматизированного создания нескольких файлов с аналогичными именами. Например, процесс создания создании резервных копий данных. Файл резервной копии данных создается с помощью утилиты tar и сохраняется на жестком диске большого, но не бесконечного объема. Локальная машина носит имя bugler, поэтому данное слово присутствует и в имени файла резервной копии. Файловая система с жесткого диска большого объема скопирована в директорию /bkup. Команда для создания резервных копий будет выглядеть следующим образом:

$ tar -zcf /bkup/bugler.backup.$(date +%a).tgz /

Она создает сжатый (благодаря параметру -z) файл архива всей файловой системы (благодаря символу / в конце команды) и сохраняет этот файл под именем /bkup/bugler.backup.Sat.tgz. В результате использования команды date при формировании имени файла, файл архива будет перезаписываться ровно через неделю, что позволит сэкономить дисковое пространство — оно будет просто повторно использоваться.

Примечание: конструкция $( ) позволяет использовать вывод дополнительной команды в качестве части основной команды. Альтернативным решением является использование обратных кавычек: . backup `date +%a`.tgz. При этом формат $( ) гораздо проще в использовании.

Установка текущих даты и времени

В том случае, если вы не будете вводить необязательные элементы записи даты и времени, утилита будет считать, что вы выбрали текущий год. Таким образом, в случае исполнения следующей команды:

системные часы будут переведены на 5 июня 2017 года (да, эта статья писалась именно в этот день). Теперь предположим, что нам нужно установить 2018 год. В этом случае команда примет следующий вид:

Использование утилиты на удаленных системах

Для сравнения дат на локальном и удаленном компьютере достаточно настроить вход в удаленную систему без пароля и выполнить команду:

Для установки локального времени на удаленном компьютере может использоваться следующая команда:

Источник

Самый быстрый способ присвоить имени файла текущую дату в Linux

Есть много случаев, когда я хочу назвать файл или каталог с текущей датой. В основном это временные резервные копии, которые я делаю время от времени, на случай, если я что-то напутаю позже.

И поскольку экспортируемый файл, например база данных, всегда будет иметь одно и то же имя, поскольку я не хочу перезаписывать более старую временную резервную копию, лучшим решением будет присвоить ему дату. И я очень устал набирать текущую дату, а также подчеркивания, но я еще более устал зависать над моими часами, чтобы проверить, какая дата.

Так что мне интересно, есть ли ярлык для вставки текущей даты, встроенной? Если нет, могу ли я его создать? Какой самый быстрый способ сделать имя / папку проще для текущей даты?

3 ответа 3

В оболочке используйте подстановку команд:

Вы можете сохранить более длинную команду в псевдониме или функции

Следуя совету Чоробы, вы можете определить пользовательское действие в контекстном меню Thunar.

Было несколько способов добавить файл:

  1. Получить дату в виде строки

Это довольно легко. Просто используйте команду date с опцией +. Мы можем использовать обратные пометки, чтобы зафиксировать значение в переменной.

Вы можете изменить формат даты, используя различные параметры%, как подробно описано на странице справки по дате.

  1. Разделить файл на имя и расширение.

Это немного сложнее. Если мы думаем, что они будут только один. в имени файла мы можем использовать вырезать. в качестве разделителя.

Тем не менее, это не будет работать с несколькими. в имени файла. Если мы используем bash — которым вы, вероятно, являетесь — мы можем использовать некоторую магию bash, которая позволяет нам сопоставлять шаблоны при расширении переменных:

Собрав их вместе, мы получим:

И если мы меньше беспокоимся о читабельности, мы делаем всю работу в одной строке (с другим форматом даты):

Другие способы были бы:

$ дата ср. 16 октября 19:20:51 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2013

Читайте также:  Как изменять темы windows

Если вы действительно хотите, чтобы имена файлов были такими, вам нужно заключить эту строку в кавычки.

$ touch «foo.backup. $(date)»

$ ll foo * -rw-rw-r— 1 saml saml 0 окт 16 19:22 foo.backup.Ср 16 октября 19:22:29 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2013

Вы, вероятно, думаете о другой строке, которая будет добавлена, но я думаю. Я обычно использую что-то вроде этого:

См. Справочную страницу для даты для большего количества кодов форматирования вокруг вывода для даты и времени. Дополнительные форматы

Если вы хотите получить полный контроль, если вы обратитесь к странице руководства, вы можете сделать что-то вроде этого:

Источник

Команда Date в Linux с примерами

Linux Date Command with Examples

В этом руководстве мы рассмотрим основы date команды.

Команда date отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в разных форматах и ​​для расчета будущих и прошлых дат.

Использование Date

Синтаксис date команды следующий:

Выходные данные включают день недели, месяц, день месяца, время, часовой пояс и год:

Параметры форматирования даты

Вывод date команды может быть отформатирован с помощью последовательности символов управления форматом, перед которой стоит + знак. Элементы управления форматом начинаются с % символа и заменяются их значениями.

Символ %Y будет заменен на год, %m месяц и %d день месяца:

Вот еще один пример:

Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:

  • %a — Сокращенное название дня недели (например, понедельник)
  • %A — Сокращенное полное название дня недели (например, понедельник)
  • %b — Сокращенное название месяца (например, январь).
  • %B — сокращенное длинное название месяца (например, январь)
  • %d — день месяца (например, 01)
  • %H — час (00..23)
  • %I — час (01.12.12)
  • %j — День года (001..366)
  • %m — Месяц (01.12.12)
  • %M — Минута (00..59)
  • %S — Второй (00 .. 60)
  • %u — день недели (1..7)
  • %Y — Полный год (например, 2019)

Чтобы получить полный список всех параметров форматирования, запустите date —help или man date в своем терминале.

Пользовательское форматирование даты

-d Опция позволяет работать на дату конкретного. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:

Использование пользовательского форматирования:

Строка даты принимает значения, такие как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» .. и т. Д.

Вы также можете использовать параметр строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время 6:30 утра следующего понедельника на восточном побережье Австралии, введите:

Переопределить часовой пояс

Команда date возвращает дату в системном часовом поясе по умолчанию . Чтобы использовать другой часовой пояс, установите переменную среды TZ в желаемый часовой пояс.

Например, чтобы показать время в Мельбурне, введите:

Чтобы получить список всех доступных часовых поясов , вы можете либо перечислить файлы в /usr/share/zoneinfo каталоге, либо использовать timedatectl list-timezones команду.

Конвертер эпох

date Команда может быть использована в качестве преобразователя Epoch. Время, или метки времени Unix, — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.

Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите date с %s контролем формата:

Чтобы преобразовать секунды с начала эпохи в дату, установите секунды в виде строки даты с префиксом @ :

Использование date с другими командами

Команда date чаще всего используется для создания имен файлов, которые содержат текущее время и дату.

Команда ниже создаст файл резервной копии Mysql в следующем формате database_name-20190601.sql

Вы также можете использовать date команду в своих сценариях оболочки. В приведенном ниже примере мы присваиваем выход date к date_now переменной:

Показать время последнего изменения файла

Команда date с -r параметром показывает время последнего изменения файла. Например:

Если вы хотите изменить временную метку файла, используйте touch команду .

Установите системное время и дату

Установка системного времени и даты вручную с помощью этой date команды не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с ntp помощью systemd-timesyncd служб или .

Однако, если вы хотите установить системные часы вручную, вы можете использовать эту —set= опцию. Например, если вы хотите установить дату и время 17:30, 01 июня 2019 г., введите:

Вывод

Команда Linux date отображает или устанавливает системную дату и время.

Источник

Оцените статью