Параметры расширенного глобуса видны только для текущей оболочки и не для запущенных вспомогательных -оболочек. Вам нужно установить их внутри оболочки sub -также, чтобы была доступна опция glob. Также **
выполняет рекурсивный спуск, только если установлена другая расширенная опция globstar
. Только для вашего требования к текущему каталогу вы можете просто использовать*
bash -c 'shopt -s dotglob; stat /path/todir/*'
Обратите внимание на использование одинарных кавычек вокруг всего списка команд оболочки. Это намного безопаснее, так как вы можете избежать ненужного расширения переменной (передачи литеральной строки )и с большей легкостью использовать строки в кавычках.
Если у вас есть контроль над частью за пределами '..'
, вы можете установить параметр расширенной оболочки в самом вызове как
bash -O dotglob -c 'stat /path/todir/*'
Тем не менее, если доступна возможность использования внешних утилит, таких как find
, вы можете просто сделать ниже, что просто исключает.
(имя текущего каталога )и включает все файлы в текущем каталоге и передает его stat
одним выстрелом.
find. ! -path. -exec stat {} +
Это число явно не сгенерировано случайным образом :если бы это было так, числа не были бы упорядочены и близки друг к другу. На самом деле это отметка времени в стандартном формате Unix, которая представляет собой количество секунд с эпохи Unix(1970 -01 -01 ).
% date -d @1563741867
Sun Jul 21 22:44:27 CEST 2019
Второе число (всегда 0 в ваших примерах )— это количество времени, в течение которого выполнялась команда (точнее, время до следующего приглашения — время, затраченное после перехода команды в фоновый режим, не считать ).
Наличие этих двух номеров контролируется опцией extended_history
, которая по умолчанию отключена. Если вы удалите setopt extended_history
из своего .zshrc
и перезапустите zsh, эти цифры исчезнут, когда zsh запишет новые записи в историю. Если вы используете фреймворк, такой как oh -my -zsh, который включает эту опцию для вас, либо узнайте, как его настроить, либо добавьте unsetopt extended_history
после загрузки фреймворка.
Невозможно использовать другой синтаксис для меток времени. Это было бы довольно бессмысленно, :это внутренний формат хранения, предназначенный только для чтения zsh, а не для непосредственного потребления человеком. Если вы хотите увидеть время, обычный способ сделать это — запустить встроенную функциюfc
или history
с возможностью печати временной метки, например.
history -i