📜 Получение вчерашней даты в Bash: Практическое руководство

Как получить вчерашнюю дату на Bash

by itisgood

Bash, Bourne-Again SHell, – это невероятно гибкий и мощный интерпретатор командного языка, широко используемый в Unix и Unix-подобных операционных системах .

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

Одним из таких приложений является возможность получения вчерашней даты.

Это может показаться простой задачей, но это полезная техника, которая часто встречается при написании сценариев и выполнении задач автоматизации.

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

Мы рассмотрим основные команды Bash, узнаем о команде date и, наконец, изучим процесс получения вчерашней даты с помощью скриптов.

Понимание команды Date

Прежде чем мы перейдем к получению вчерашней даты, важно сначала понять команду date на Bash.

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

По умолчанию, без каких-либо аргументов, она отображает текущую дату и время.

date 

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

Tue May 14 23:23:00 PDT 2023

Команда date также позволяет форматировать вывод.

Например, вы можете вывести дату в формате YYYY-MM-DD с помощью следующей команды:

date +"%Y-%m-%d" 

Это приведет к выводу:

2023-05-14

Получение вчерашней даты

Теперь поговорим о том, как получить вчерашнюю дату.

С помощью опции -d или –date команды `date` мы можем отобразить время, описанное строкой, вместо “сейчас”.

Эта строка может быть относительным выражением, например, “1 день назад”.

date -d "1 day ago" +"%Y-%m-%d" 

Система выведет дату на один день назад в формате YYYY-MM-DD:

2023-05-13

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

Например, в системе MacOS для получения вчерашней даты вы будете использовать опцию -v-1d:

date -v-1d +"%Y-%m-%d" 

Получение других предыдущих дат

Помимо получения вчерашней даты, команда date также позволяет получить любую предыдущую дату.

Это можно сделать, манипулируя относительным выражением, заданным опцией -d или –date.

date -d "3 days ago" +"%Y-%m-%d" 

Эта команда выведет дату трехдневной давности в формате YYYY-MM-DD.

date -d "1 week ago" +"%Y-%m-%d"  date -d "1 month ago" +"%Y-%m-%d"  
date -d "1 year ago" +"%Y-%m-%d" 

Эти команды выводят даты недельной, месячной и годичной давности соответственно в формате YYYY-MM-DD.

Помните, что в MacOS для получения даты 3 дня назад используется -v-3d, для получения даты 1 недели назад -v-1w, для получения даты 1 месяца назад -v-1m, а для получения даты 1 года назад -v-1y:

date -v-3d +"%Y-%m-%d"
date -v-1w +"%Y-%m-%d"  date -v-1m +"%Y-%m-%d"  date -v-1y +"%Y-%m-%d" 

Эти команды обеспечивают большую гибкость в написании скриптах Bash, позволяя вам легко манипулировать данными даты и времени в соответствии с вашими потребностями.

Заключение

Умение работать с данными даты и времени в скриптах Bash – ценный навык.

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

В этой статье мы показали вам, как это сделать простым и понятным способом.

см. также:

You may also like

Leave a Comment