Удалить случайно сгенерированные (? )номера из.zsh _файл истории

Параметры расширенного глобуса видны только для текущей оболочки и не для запущенных вспомогательных -оболочек. Вам нужно установить их внутри оболочки sub -также, чтобы была доступна опция glob. Также **выполняет рекурсивный спуск, только если установлена ​​другая расширенная опция globstar. Только для вашего требования к текущему каталогу вы можете просто использовать*

bash -c 'shopt -s dotglob; stat /path/todir/*'

Обратите внимание на использование одинарных кавычек вокруг всего списка команд оболочки. Это намного безопаснее, так как вы можете избежать ненужного расширения переменной (передачи литеральной строки )и с большей легкостью использовать строки в кавычках.

Если у вас есть контроль над частью за пределами '..', вы можете установить параметр расширенной оболочки в самом вызове как

bash -O dotglob -c 'stat /path/todir/*'

Тем не менее, если доступна возможность использования внешних утилит, таких как find, вы можете просто сделать ниже, что просто исключает.(имя текущего каталога )и включает все файлы в текущем каталоге и передает его statодним выстрелом.

find. ! -path. -exec stat {} +
1
22.07.2019, 11:59
1 ответ

Это число явно не сгенерировано случайным образом :если бы это было так, числа не были бы упорядочены и близки друг к другу. На самом деле это отметка времени в стандартном формате 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
3
27.01.2020, 23:41

Теги

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