Используя grep -l
Вы только получите файлы, которые содержат по крайней мере одно соответствие.
Вам нужна информация о сколько соответствий, там находятся в файле вообще? Поскольку Вы могли пропустить использование -c
который используется для подсчета количества соответствий в файле.
править: И как колдун сказал использование -I
подавить соответствия в двоичных файлах могло также быть хорошей идеей.
Установите crontab как:
@reboot the-script
0 0 * * 1 the-script
0 0 1 1 * the-script
Сделать его по понедельникам и при каждой начальной загрузке. И в the-script
, проверьте, было ли это уже сделано. (при использовании %W
для недельного числа необходимо также сделать это первого января (благодарит Gilles), не при использовании недельного числа ISO 8061 (%V)).
Если Ваш cron
не поддерживает @reboot
, необходимо было бы добавить его к сценарию запуска.
Или просто выполненный это ежедневно и делает что-то как (принятие GNU
find
, так не OS/X, хотя Вы могли использовать OS/X stat
в сочетании с -exec ... {} +
.
cd ~/Download || exit
find . -path './20[0-9][0-9].[0-9]*' -prune -o -type f -mtime +7 -printf '%p\0%TY.%TW\0' |
xargs -r0n2 sh -c 'mkdir -p "$2" && exec mv -i "$@"' sh
(непротестированный)
Или с zsh
:
zmodload zsh/stat
cd ~/Download || exit
for f (**/*~20[0-9][0-9].[0-9]*(.DNm+7)) {
zstat -A d -F %Y.%W -- $f &&
mkdir -p $d &&
mv -i -- $f $d
}
Если Вы не хотите делать это рекурсивно, это более просто:
zmodload zsh/stat
cd ~/Download || exit
for f (*(.DNm+7)) {
zstat -A d -F %Y.%W -- $f &&
mkdir -p $d &&
mv -i -- $f $d
}
Если время последнего изменения не отражает время загрузки, то Вы можете использовать время рождения. На этот раз использование OS/X find
, stat
и xargs
(и использование -maxdepth 1
не рекурсивно вызывать):
find . -type f -maxdepth 1 -Btime +7 \
-exec stat -nf%SB -t%Y.%W {} \; \
-exec printf '\0' \; \
-print0 | xargs -0n2 sh -c '
mkdir -p "$1" && mv -i "$2" "$1"' sh
cron
выполнения@reboot
задания, когда это запускается. Второй, Вы могли каждый час работать вместо ежедневной газеты. OS X – Stéphane Chazelas 25.10.2013, 12:08