Вы можете получить метки времени с помощью find
с -printf
или с помощью stat
и отсортировать их, чтобы получить самые старые. Затем вычтите то, что вы хотите, и используйте его в качестве спецификации даты для touch
. find
имеет тот недостаток, что печатает доли секунды, которые необходимо удалить для расчета.
oldest=$(stat -c "%Y" dir/*|sort|head -1)
touch -d "@$((oldest-1))" dir/file
# or touch -d "@$((oldest-60))" file # subtract 1 min to see the difference in normal ls -l output.
Синтаксис даты -d @seconds-since-epoch
поддерживается GNU touch. Это не указано в POSIX.
Команда stat
не указана в POSIX, она является частью GNU coreutils, см.https://stackoverflow.com/questions/27828585/posix-analog-of-coreutils-stat-command.
Таким образом, это решение должно работать в системах Linux, но, возможно, не в обычных системах UNIX.
% autoload -Uz promptinit && promptinit # Initialize the prompt system
% prompt -p # Preview the included prompts
...
% # Get the source file of a particular prompt:
% zmodload zsh/parameter
% print $functions_source[prompt_fade_setup]
/usr/share/zsh/5.8/functions/prompt_fade_setup
%
Эта prompt
команда поставляется с zsh и описана в руководстве . К сожалению, он отсутствует в указателе функций , но его можно найти с помощью полного -текстового поиска :man zshall
, а затем поиска^ *prompt
(слова «подсказка» в начале строки ). или, чтобы получить меньше нерелевантных совпадений,^ *prompt [^ a-z]
(исключите места, где за ним следует другое слово ). Это часть вклада пользователя тем подсказки .
В руководстве объясняется, как написать собственную тему приглашения . Тема подсказки определяется функцией настройки, соответствующей шаблону именования prompt_name_setup
, который должен загружаться автоматически. Код темы приглашения официально не поддерживает динамическую регистрацию темы приглашения, хотя, глядя на исходный код, вы можете сделать это, добавив имя функции настройки (, которая должна соответствовать шаблону именования ), к prompt_themes
. массив после запуска promptinit
.
Чтобы узнать, где находятся доступные темы подсказок, посмотрите, откуда загружаются функции prompt_*_setup
из :
echo $^fpath/prompt_*_setup(N)
Каждое из них является определением функции, которое вы можете прочитать.