- Добавить дату в имя файла в linux
- ⏱️ Как создать каталоги или файлы с именами на текущую дату/время/месяц/год на Linux
- Создание каталогов или файлов с именами текущей даты / времени / месяца / года на Linux
- Создание каталогов или файлов с произвольным именем с текущей датой
- Создание каталогов файлов в формате ISO
- Больше примеров
- Добавить комментарий Отменить ответ
- • Свежие записи
- • Категории
- • itsecforu.ru
- • Страны посетителей
- IT is good
- Создать файл с именем даты linux
- Формат ввода даты и времени
- Формат вывода даты и времени
- Примеры использования
- Получение текущих даты и времени
- Добавление текущей даты в имена создаваемых файлов
- Установка текущих даты и времени
- Использование утилиты на удаленных системах
- Самый быстрый способ присвоить имени файла текущую дату в Linux
- 3 ответа 3
- Команда Date в Linux с примерами
- Linux Date Command with Examples
- В этом руководстве мы рассмотрим основы date команды.
- Использование Date
- Параметры форматирования даты
- Пользовательское форматирование даты
- Переопределить часовой пояс
- Конвертер эпох
- Использование date с другими командами
- Показать время последнего изменения файла
- Установите системное время и дату
- Вывод
Добавить дату в имя файла в 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 позволяет задействовать одноименную утилиту, которая используется для двух целей. Обычно она используется для получения текущих даты и времени при необходимости в заданном формате, но при этом она также позволяет устанавливать их.
Стандартный синтаксис команды выглядит следующим образом:
$ 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 |
Примеры использования
Получение текущих даты и времени
Для получения текущих даты и времени в стандартном формате достаточно выполнить следующую команду:
Утилита выведет аналогичную информацию:
Чт июн 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.
Было несколько способов добавить файл:
- Получить дату в виде строки
Это довольно легко. Просто используйте команду date с опцией +. Мы можем использовать обратные пометки, чтобы зафиксировать значение в переменной.
Вы можете изменить формат даты, используя различные параметры%, как подробно описано на странице справки по дате.
- Разделить файл на имя и расширение.
Это немного сложнее. Если мы думаем, что они будут только один. в имени файла мы можем использовать вырезать. в качестве разделителя.
Тем не менее, это не будет работать с несколькими. в имени файла. Если мы используем bash — которым вы, вероятно, являетесь — мы можем использовать некоторую магию bash, которая позволяет нам сопоставлять шаблоны при расширении переменных:
Собрав их вместе, мы получим:
И если мы меньше беспокоимся о читабельности, мы делаем всю работу в одной строке (с другим форматом даты):
Другие способы были бы:
$ дата ср. 16 октября 19:20:51 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2013
Если вы действительно хотите, чтобы имена файлов были такими, вам нужно заключить эту строку в кавычки.
$ 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 отображает или устанавливает системную дату и время.
Источник