Иногда хочется побыть таким камнем, но не сегодня. Сегодня у нас «Необычные способы узнать дату и время»
Ты скажешь есть же команда date, верно, есть и такая. Но мы же с тобой не пальцем деланные, нам надо посложнее, по геморойнее 😢
Есть несколько способов узнать из консоли текущую дату и время. К примеру ты можешь сделать это через утилиту stat.
stat -c'%z' /proc/self/statВременные метки [atime, mtime, ctime] будут равны времени создания [inode] для этого «файла». В данном случае это время обращения к данному файлу. Вообще proc сама по себе интересная штука. Почти для каждого файла есть свой набор функций для стандартных операций [read, write, open и т.п.].
2023-07-18 11:42:22.592640126 +0000А еще получить желаемое можно с помощью утилиты «ps»
ps --no-headers -o lstart -C psВремя и дата равны времени запуска процесса ps
Tue Jul 18 11:44:07 2023Следом идет команда «printf»
printf '%(%c)T\n'Это встроенная команда в оболочку Bash. Выводится дата и время в соответствии с установленной локалью.
Tue Jul 18 11:44:53 2023А еще можно так:
( T='\t' ; echo ${T@P} )
( T='\T' ; echo ${T@P} )
( T='\@' ; echo ${T@P} )
( T='\A' ; echo ${T@P} )
( T='\D{%X%t%x}'; echo ${T@P} )
${parameter@P} начиная с версии bash 4.416:16:22Ну и фаталити на закусочку, выведем unixtime тремя разными способами. Эквивалентно команде:
04:16:26
04:16 PM
16:16
16:16:39 07/18/23
date '+%s'
printf '%s\n' "$EPOCHREALTIME"Вообще редко такое может пригодиться, но пару раз на собесах какие-то упоротые техдиры задавали подобный вопрос. Не знаю откуда они такое берут, но факт остается фактом.
printf '%s\n' "$EPOCHSECONDS"
printf '%(%s)T\n'
1689686418.954954
1689686418
1689686418
Разнообразь свои скрипты такими замысловатыми конструкциями и ни один девопс (кроме тебя естественно) нихрена не поймёт. Создашь басфактор и будешь самым незаменимым в коллективе 😠 пам пам пам
Всем добра котики!
tags: #bash #linux
—
🟢 Подпишись: @bashdays