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

Вы используете dircolors в подоболочке, поэтому изменения применяются только внутри подоболочки.

Подоболочка $(...)

Попробуйте вместо этого...

alias ls="dircolors -b ~/.dircolors && ls"
1
22.07.2020, 14:28
2 ответа

GNU dateне допускает никаких дополнительных спецификаций для отметки времени.

Из информационной документации date:

If you precede a number with ‘@’, it represents an internal timestamp as a count of seconds. The number can contain an internal decimal point (either ‘.’ or ‘,’); any excess precision not supported by the internal representation is truncated toward minus infinity. Such a number cannot be combined with any other date item, as it specifies a complete timestamp.

(упор минный)

Боюсь, вам нужно два вызова, например

date -d "$(date -d @1595413447 +'%F 10:05')"
1
18.03.2021, 23:18

Вы всегда можете указать время как часть выходного формата:

$ date -d @1595413447 '%a %b %e 10:05:00    %Y'
Wed Jul 22 10:05:00    2020

Или более переносимый (отказ от зависимости GNU date)в оболочке ksh93:

$ printf '%(%a %b %e 10:05:00    %Y)T\n' '#1595413447'
Wed Jul 22 10:05:00    2020

Хотя ksh93также поддерживает:

$ printf '%(%a %b %e %T    %Y)T\n' '#1595413447 10:05'
Wed Jul 22 10:05:00    2020

Или в оболочке zsh:

$ zmodload zsh/datetime
$ strftime '%a %b %e 10:05:00    %Y' 1595413447
Wed Jul 22 10:05:00    2020

Или в оболочке bash(bashскопированы ksh93's printf %Tдля форматирования, но не для разбора даты):

$ printf '%(%a %b %e 10:05:00    %Y)T\n' 1595413447
Wed Jul 22 10:05:00    2020
1
18.03.2021, 23:18

Теги

Похожие вопросы