Сортировать содержимое папки по времени их git

Вот пример использования параметров echo без новой строки-nи возврата каретки \r.

bash overwrite terminal line

#!/bin/bash

CHECK_MARK="\033[0;32m\xE2\x9C\x94\033[0m"

echo -e "\n\e[4mDoing Things\e[0m"
echo -n "doing thing 1..."
sleep 1
echo -e "\\r${CHECK_MARK} thing 1 done"

0
30.01.2020, 17:12
2 ответа

Вариант этого ответа на связанный вопрос перечисляет все отслеживаемые файлы в текущем каталоге в обратном хронологическом порядке на основе их последнего зафиксированного изменения:

git log --pretty='' --name-only | awk '/^[^/]*$/ { if (!seen[$0]++) print }'
3
28.04.2021, 23:25

Если zshявляется опцией, вы можете использовать ееoe(или Oeв зависимости от того, хотите ли вы, чтобы самые новые -до -самые старые или самые старые -до -самые новые в порядке )с a git log, который возвращает время эпохи(%ct)самой последней фиксации.

Пр.

print -rl *(Noe:'REPLY=$(git log -1 --format=%ct $REPLY)':)

Чтобы избежать необходимости запоминать и вводить команду, вы можете определить вспомогательную функцию, например

ct() { REPLY=$(git log -1 --format=%ct $REPLY); }

, а затем используйте

print -rl *(Noe:ct:)

Это работает с использованием квалификатораzshglob формыoC:

oC

specifies how the names of the files should be sorted.

в частности

oe and o+ are special cases; they are each followed by shell code, delimited as for the e glob qualifier and the + glob qualifier respectively. The code is executed for each matched file with the parameter REPLY set to the name of the file on entry and globsort appended to zsh_eval_context. The code should modify the parameter REPLY in some fashion. On return, the value of the parameter is used instead of the file name as the string on which to sort.


Ссылки:

3
28.04.2021, 23:25

Теги

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