Очень поздно, но я только что столкнулся с той же проблемой и нашел обходной путь, так что, надеюсь, это поможет кому-то еще. Отредактируйте пороговое значение в файле motion.conf так, чтобы оно было выше, чем разрешение в общем количестве пикселей (, установите для меня значение 999999 ). По умолчанию 1500 пикселей обнаруженного движения помечаются как движение. Кажется, что установка очень высокого порогового значения позволяет избежать зависания.
По крайней мере, в системах на базе GNU -вы должны иметь возможность использовать stat
и numfmt
для получения желаемого формата, например.:
find. -type f -size +10M -printf "%f -> " -exec sh -c '
stat -c "%s" "$1" | numfmt --to-unit=1048576 --format="%.0f MB"
' sh {} \;
Измените --to-unit=1048576
на --to-unit=1000000
в зависимости от того, хотите ли вы МБ или МБ.
Если у вас есть доступ к ast -, откройте реализациюls
:
find. -type f -size +10M -exec ls -ldh --format='%(name)s -> %(size)dB' {} +
Будут использоваться суффиксы MiB
, GiB
, TiB
... по мере необходимости.
С zsh
, в любой системе (с использованием только встроенных функций ), только для MiB (с округлением до ближайшего):
zmodload zsh/stat
stat -LnA info +size -- **/*(D.LM+10)
for f s ($info) printf '%s -> %.0fMiB\n' $f $(($s / 1048565.))
Гонка окончена, @steeldriver выиграл +1 ; -), а я бы пошел другим (может попроще ? )способ:
$ find. -type f -size +10M -printf "%f %s\n" | awk '{printf("%s -> %.0f MB\n", $1,$2/1048576)}'