Как в bash узнать размер файла

Очень часто приходится сравнивать размеры файлов, будь то бэкапы, документы или любые другие файлы. Мне например очень пригодилось при работе с бэкапами, так как иногда архиватор создает бэкапы с нулевым размером (32 байта). Чтобы избежать таких “косяков” в своих скриптах я использую команду:

filesize=$(stat -c%s "$file");

В ответ вы получите размер файла в байтах. Это очень удобно при работе с маленькими файлами, либо когда разница в файле очень мала. Дальше используйте по-своему усмотрению. например, так:

#если бэкап меньше 1 мбайта, то подозрительна чёта 8(
filesize=$(stat -c%s "$file");
if [ "$filesize" -lt "1000000" ];
then
echo "WARNING! File size of $file is small - $filesize byte" >> $backupdir/$logfile;
fi

Затем весь лог-файл отправляется на почту. Об этом написано в посте Как отправить содержимое файла на почту в bash

Радмир Рамазанов

IT-специалист. Занимаюсь компьютерами, серверами, сайтами, телефонией. Пишу статьи про Windows, Linux, Android, периферийное оборудование, ошибки и их решения

Как в bash узнать размер файла: 1 комментарий

  • 12.12.2017 в 23:08
    Permalink

    #!/bin/sh
    while [ $(ls -l /tmp/gresp | awk ‘{ print $5 }’) -lt 20 ]
    do
    echo > /dev/null
    done

    жду пока /temp/gresp не распухнет до 20 байт

    Ответ

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *