Как проверить размер файла в сценариях оболочки Linux / Unix 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 '{print $1}'

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

5253

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

myfilesize=$(wc -c "/etc/passwd" | awk '{print $1}')
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:

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 = ${mfs}"

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

Как проверить размер файла в сценариях оболочки Linux / Unix bash
Рисунок 01: Как проверить размер файла с помощью оболочки bash/ksh/zsh/sh/tcsh?

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

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

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 "${fileName} size is ${mysize} bytes."

Перевод: Анна Давыдова
Источник: cyberciti.biz

Это интересно:

Оставить ответ

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