Надлежащий вызов патча будет быть похожим:
patch -p1 < net-ssh2-0.18-perl5.10.patch
Вы имеете, делают это в каталоге, где файл SSH2.xs.
Самый простой путь с find
:
find / -daystart -mtime +41 -mtime -408 \
-printf "%M %n %u %g %10s %TY-%Tm-%Td %Ta %TH:%TM:%TS %h/%f\n" |
awk '($7=="Fri"){print}'
Корректируйтесь -printf
как требуется я заставил его посмотреть близко к ls -l
здесь. %T
(и %A
%C
) позвольте Вам использовать strftime()
форматирование для меток времени, %Ta
будучи днем недели. (Вы, возможно, должны скорректировать дневные диапазоны 41 - 408, но это - действительно просто оптимизация, Вы можете просто grep 2012
, или корректируйтесь -printf
помочь grep.)
Править: более устойчивая версия, с некоторой небольшой потерей ясности:
find / -daystart -mtime +41 -mtime -408 \
-printf "%M %n %u %g %10s %TY-%Tm-%Td %Ta %TH:%TM:%TS\0%h/%f\0\0" |
gawk 'BEGIN{RS="\0\0"; FS="[\0]"} ($1~/ Fri /) { printf $2 "\0"}' |
xargs -0 -n 1 -i ls -l "{}"
Это эмулирует -print0
, но каждая строка имеет два \0
разграниченные поля, при этом имя файла является вторым. Замена ls -l "{}"
в конце с тем, что необходимо сделать в файл (файлы). Я явно использую gawk
, другие awks не берут настолько любезно к \0 байтам в RS
/FS
(обновленный для обработки новых строк в именах файлов также).
Кроме того, как предложено mreithub можно использовать %Tu
а также, или вместо %Ta
в течение пронумерованного рабочего дня, независимой от языка опции.
С gnu
tools:
find . -exec bash -c '[[ $(date -r "$0" +%u%Y) = "52012" ]]' {} \; -print
имена файлов / каталогов имеют вид -print
, только если предыдущий -exec
вернул true , то есть, если mtime
, как указано в date -r
в указанном формате (% u % Y
) равно 52012
Или, если вы предпочитаете решение только zsh
(это очень похоже, строка e
выбирает только эти файлы / каталоги, для которых выражение в кавычках возвращает true ):
zmodload zsh/stat
print -rl -- **/*(De_'[[ $(zstat -F "%u%Y" +mtime -- $REPLY) = "52012" ]]'_)
Fri
, даже если они никогда не трогались в пятницу. Я предполагаю, что Вы могли работать вокруг этого с разделителем, разделяя и проверяя каждую часть. Однако, это - достойное приближение, использующее обычно доступные инструменты получитаемым способом, таким образом, +1. – a CVn 11.02.2013, 12:45find /mnt/music/Datenbank -mtime +41 -mtime -408 -printf "%Ta %p\n"|grep ^Fri|sed 's/^Fri //'
. Вы, возможно, должны были бы предварительно ожидать LC_ALL=C, чтобы удостовериться, что недельный день является английским – mreithub 11.02.2013, 12:48:)
Решение @mreithub в комментарии хорошо также. – a CVn 11.02.2013, 12:51