Мне нужно сгенерировать список всех изображений и файлов css с измененными датами, например, из фиксации.
git ls-tree -r --name-only HEAD | while read filename; do
echo "$(git log -1 --format="%ad" -- $filename) $filename"
done
Как бы Я изменяю это так, чтобы просто возвращать файлы jpg, gif, png и css?
О, я вижу @Marco - спасибо. Мне и в голову не приходило, что я могу добавить в микс grep, например, эта небольшая модификация сработала хорошо.
--name-only HEAD | grep ".css" | while...
Поскольку вам нужен список всех изображений и файлов css, в идеале вы должны направить свой вывод примерно так:
grep '.gif $ \ | .jpg $ \ | .png $ \ | .css $'
Of конечно, вы можете добавить более подходящие расширения, которые может содержать ваш проект, например .bmp.
Если я попробую ls | grep -i '.gif $ \ | .jpg $ \ | .png $ \ | .css $ '
Я получаю список всех файлов в текущей папке с заданными расширениями.
Давайте подробнее рассмотрим эту команду:
$
гарантирует, что вы не найдете ни одного нежелательного файла, например .css.bak. $
соответствует концу строки.
\ |
позволяет указать несколько шаблонов, поэтому вам не нужно вызывать несколько git ls-tree
, чтобы получить все list.
Если ваше репо содержит какие-либо файлы с расширениями в верхнем регистре, вы можете добавить -i
, чтобы запускать grep без учета регистра.
Шаблоны между одиночными '
обеспечивают точки интерпретируются как точки, а не как «любой символ», как подразумевается в регулярных выражениях.