Проверьте размер файла больше 1,6 ГБ - PullRequest
0 голосов
/ 19 июня 2020

У меня есть следующий шаг в моем Bash коде, который проверяет, превышает ли размер файла 1,6 ГБ:

#!/bin/sh

SIZE_THRESHOLD=1717986918

if [[ $(find /home/methuselah/file -type f -size +${SIZE_THRESHOLD}c 2>/dev/null) ]]; then
  somecmdbecausefileisbigger
else
  somecmdbecausefileissmaller
fi

Команда somecmdbecausefileisbigger никогда не запускается, даже если размер файла больше 1,6 ГБ. Почему это?

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Просто используйте stat (обратите внимание, что ваша версия stat может отличаться; подробности см. На странице руководства):

if [ "$(stat -c '%s' /home/methuselah/file)" -gt "$SIZE_THRESHOLD" ]; then
1 голос
/ 19 июня 2020

Я не знаю, почему ваша команда find не работает, но я знаю более простой способ сделать это:

if [ $(stat -f %z /home/methuselah/file) -gt ${SIZE_THRESHOLD} ]; then

Хотя, к сожалению, вам придется заменить -f %z на -c %s на Linux (первый работает на BSD и MacOS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...