Вы используете dircolors в подоболочке, поэтому изменения применяются только внутри подоболочки.
Подоболочка $(...)
Попробуйте вместо этого...
alias ls="dircolors -b ~/.dircolors && ls"
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')"
Вы всегда можете указать время как часть выходного формата:
$ 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