Перейти к содержимому

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

  • автор:

Как проверить размер файла в сценариях оболочки Linux / Unix bash

Я новый пользователь сценариев оболочки bash. Как узнать размер файла в моем сценарии оболочки bash и сохранить этот размер файла в переменной оболочки bash?

Вы не можете получить размер файла в сценарии bash, используя внутреннюю или встроенную команду. Вам понадобятся несколько команд, включая stat. Командная строка stat отображает информацию о файле, включая его размер. Другой вариант — использовать команду wc, которая может подсчитывать количество байтов в каждом заданном файле. Давайте посмотрим, как использовать эти две команды для проверки размера файла в Linux или Unix-подобной системе.

Как проверить размер файла в unix с помощью команды wc

Команда wc показывает количество строк, слов и байтов, содержащихся в файле. Для получения размера файла, используйте синтаксис, который выглядит следующим образом:

wc -c /path/to/file wc -c /etc/passwd

Примеры возможных выводов данных:

5253 /etc/passwd

Вы может с легкостью извлечь первое поле, используя или команду cut или команду awk:

wc -c /etc/passwd | awk ''

Примеры возможных выводов данных:

5253

или присвоить этот размер переменной bash:

myfilesize=$(wc -c "/etc/passwd" | awk '') printf "%d\n" $myfilesize echo "$myfilesize"

Как узнать размер файла в сценарии bash, используя команду stat

Команда stat показывает информацию о файле. Используйте следующий синтаксис для того, чтобы узнать размер файла на GNU/Linux с помощью команды stat:

stat -c %s "/etc/passwd"
stat --format=%s "/etc/passwd"

Чтобы присвоить этот размер переменной bash:

myfilesize=$(stat --format=%s "/etc/passwd") echo "$myfilesize" ## or ## myFileSizeCheck=$(stat -c %s "/etc/resolv.conf") printf "My file size = %d\n" $myFileSizeCheck

Используйте следующий синтаксис для того, чтобы узнать размер файла на BSD/MacOS с помощью команды

stat -f %z "/etc/passwd"

Обратите внимание, что если файл является символьной ссылкой, вы получите размер этой ссылки только с помощью команды stat.

Примеры команды du

Синтаксис выглядит следующим образом

du --apparent-size --block-size=1 "/etc/passwd" fileName="/etc/hosts" mfs=$(du --apparent-size --block-size=1 "$fileName" | awk '< print $1>') echo "$fileName size = $"

Примеры возможных выводов данных указанных выше команд:

Как проверить размер файла в сценариях оболочки Linux / Unix bash

Найдите пример команды

Синтаксис выглядит следующим образом:

find "/etc/passwd" -printf "%s" find "/etc/passwd" -printf "%s\n" fileName="/etc/hosts" mysize=$(find "$fileName" -printf "%s") printf "File %s size = %d\n" $fileName $mysize echo "$ size is $ bytes."
  • Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Linux (LAMP)
  • Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10
  • Установка Adobe Photoshop CS6 на Linux (очень простой способ)

Как в 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

Отблагдарить автора статьи также можно переводом, +100 вам в карму!

Как узнать размер файлов и папок в Linux?

github

Чтобы посмотреть размер файлов в папке Linux (а так же размер самих папок) в удобочитаемом формате (ГБ, КБ, МБ или байты) достаточно открыть консоль или подключиться к серверу по SSH и ввести несколько простых команд, о которые рассмотрим ниже.

Содержание статьи

  • Вывести размер файлов linux командой «ls»
  • Посмотреть размер файлов и папок командой «du»
  • Узнать размер файла linux командой «stat»

Вывести размер файлов linux командой «ls»

Чтобы вывести размер файлов, которые находятся в текущем каталоге введите команду

ls -lh

Параметр -l выводит информацию в виде списка строк, а добавление опции h выводит размер файлов в удобочитаемом формате.

В четвертой колонке будет указан размер.

Чтобы узнать размер определенного файла, через пробел нужно ввести его имя. Например, чтобы узнать размер файла filename.txt:

ls -lh filename.txt

Минус этой команды в том, что она не вычисляет размер папок (директорий). На помощь приходит команда du.

Посмотреть размер файлов и папок командой «du»

Используйте команду du чтобы узнать общий размер открытой директории. Это самый простой и популярный способ. Пример:

du -hs

Параметр -h указывает на то, чтобы вывод был в удобочитаемом формате. А параметр «s» — чтобы размер файлов в папке linux суммировался.

Чтобы посмотреть информацию по занимаемому месту на диске с разбивкой по файлам и папкам, введите команду:

du -hs *

Звездочка на конце обязательна! Команда найдет и покажет все размер всех файлов и директорий в текущем каталоге.

Узнать размер файла linux командой «stat»

Еще один способ, который позволяет получить размер файла Linux — команда stat. Команду запускайте так:

stat filename.txt

Где filename.txt — название интересующего файла. По-умолчанию, размер будет выведен в байтах.

Все эти команды отлично работают как в терминалах Linux: Ubuntu, Debian, CentOS, так и в других Unix и BSD-like системах: MacOS, FreeBSD и т.д.

Используйте любую на ваше усмотрение. Все очень просто.

Посчитать размер файла в байтах на shell

Основная задача — узнать размер файла. Изначально в проекте пользовался du -b file.txt. Проект переехал на BusyBox. Теперь у команды du нет опции -b. Каким образом еще можно посчитать размер файла в байтах.

Отслеживать
задан 14 янв 2016 в 7:22
399 2 2 серебряных знака 16 16 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для получения подробной информации о файлах надо использовать команду stat :

stat имя-файла -c %s 

Для получения информации в том же виде, как выдает du -b т.е. с именем файла после размера, можно использовать формат -c «%s %n»

Отслеживать
ответ дан 14 янв 2016 в 7:28
44.1k 3 3 золотых знака 35 35 серебряных знаков 66 66 бронзовых знаков

  • linux
  • shell
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

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

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